Autor | Zpráva | ||
---|---|---|---|
tomas2245 Profil |
môže tento kód správne fungovať? mám na mysli ten hrubo zvýraznený:
či to môže byť takto definované na priamo.. $tovar = array(); $klucik = ""; foreach($_POST as $kluc => $obsah) { if (strpos($kluc, 'tovar) === 0) { if(!empty($_POST[$kluc])){ $klucik = substr($kluc, 5); $klucik = str_replace("_", ".", $klucik); $klucik = mysqli_real_escape_string($pripoj,$klucik); mysqli_query($pripoj,"UPDATE tabulka SET pocet='$obsah' WHERE id='$klucik'"); header("location: statistika.php?hlaska=2"); } } } exit(); |
||
Taps Profil |
#2 · Zasláno: 18. 11. 2016, 12:37:15
tomas2245:
ono je lepší jako id zadávat celočíselné hodnoty bez desetinných míst. |
||
tomas2245 Profil |
#3 · Zasláno: 18. 11. 2016, 13:47:28
Taps:
okej, diky :) |
||
tomas2245 Profil |
ešte by som potreboval pomôcť s jedným kódom:
mám proste veľa inputov: <input type="text" name="tovar1"> (každý má svoje id...: tovar"1",tovar"2...") potrebujem aby sa pri odoslaní objednávky objavila rekapitulácia...meno alebo priezvisko... mi vypíše normálne zavolaním funkcie [@meno...] ale neviem spojazdniť aby sa mi aj tie inputy tovarov zobrazili... tu je problémový kód: $tovary = array(); $_SESSION["tovary"] = $tovary; $klucik = ""; foreach($_SESSION as $kluc => $obsah) { if (strpos($kluc, 'tovar') === 0) { if(!empty($_SESSION[$kluc])){ $klucik = substr($kluc, 5);//dame prec zaciatok 'tovar' } } } if($_GET['hlaska'] == 1){$hlaska='[@meno] <br> [@priezvisko] <br> [@tovary]';} $vypis->set ("tovary", $tovary); $vypis->set ("meno", $meno); $vypis->set ("priezvisko", $priezvisko); echo $vypis->output(); volám potom funkciu [@tovary] ale na stránke mi to vypíše len Array |
||
Keeehi Profil |
#5 · Zasláno: 20. 11. 2016, 09:15:28
Musíš upravit metodu output třídy z které je vytvořený objekt v proměnné $vypis. Když nahrazuješ v textu, nemůžeš slepě nahrazovat čímkoli ti přijde pod ruku. Předpokládám, že v té metodě máš někde něco ve stylu
str_replace($co, $cim, $kde) str_replace($co, $this->toString($cim), $kde) protected function toString($input) { if(is_array($input)) { return print_r($input, true); } return (str)$input; } To formátování pole si samozřejmě můžeš změnit dle libosti, případně přidat převod dalších typů. |
||
tomas2245 Profil |
Keeehi:
nerozumiem ako ju mám upraviť tu output triedu? prepáč, že nechápem ale som v tomto amatér.. a áno mal som tam tak to str_replace napísané a upravil som to podľa teba... |
||
Keeehi Profil |
#7 · Zasláno: 20. 11. 2016, 10:26:09
tomas2245:
„nerozumiem ako ju mám upraviť tu output triedu?“ Output není třída ale metoda nějaké třídy. Pokud jsi upravoval to str_replace, pak jsi upravoval právě metodu output v té třídě. Jak se ta třída jmenuje ti nemůžu říct, protože z tebou dodaného kódu to nejde poznat. Ale ty víš která to je, když v ní upravuješ kód. Co se přidání metody toString týče, tak ten můj kód jen nakopíruješ za metodu output. |
||
tomas2245 Profil |
lenže ja vôbec netuším aké hodnoty majú byť v tom str_replace..v tom bude hlavne pes zakopaný..ten kód nie je totižto môj..
|
||
Keeehi Profil |
tomas2245:
„lenže ja vôbec netuším aké hodnoty majú byť v tom str_replace..v tom bude hlavne pes zakopaný..ten kód nie je totižto môj..“ No, evidentně netušíš. Tahle část kódu vůbec nevypadá, že by s tím měla cokoliv společného. Upravil jsi bohužel něco špatného, takže jsi to spíše ještě více rozbil. Takže to prosím vrať do původního stavu. Zkusím to ještě jednou. Za kód v [#4] vlož echo get_class($vypis); Začátek bude nejspíše vypadat class JmenoTridy ... public function output() { |
||
tomas2245 Profil |
Keeehi:
tu je ten public function output() { <?php public function output() { if (!file_exists($this->file)) { return "Error loading template file ($this->file).<br />"; } $output = file_get_contents($this->file); foreach ($this->values as $key => $value) { $tagToReplace = "[@$key]"; $output = str_replace($tagToReplace, $value, $output); } return $output; } |
||
Keeehi Profil |
No výborně, tady je potřeba upravit ten str_replace a přidat tu druhou metodu.
public function output() { if (!file_exists($this->file)) { return "Error loading template file ($this->file).<br />"; } $output = file_get_contents($this->file); foreach ($this->values as $key => $value) { $tagToReplace = "[@$key]"; $output = str_replace($tagToReplace, $this->toString($value), $output); } return $output; } protected function toString($input) { if(is_array($input)) { return print_r($input, true); } return (str)$input; } |
||
tomas2245 Profil |
Keeehi:
HTTP ERROR 500 toto mi píše keď som to tam pridal...nenačíta mi vôbec stránku..je to dobre opísané.. |
||
Keeehi Profil |
#13 · Zasláno: 20. 11. 2016, 16:03:25
tomas2245:
Ta úprava by tomu neměla uškodit. Ovšem je pravda, že to formátování by asi nemělo být zrovna v té třídě. Co no se těžko radí takhle na dálku, když člověk nevidí celý návrh. Takže, velmi prosté řešení. Vrať vše do původního stavu. A úpravu udělej tady if($_GET['hlaska'] == 1){$hlaska='[@meno] <br> [@priezvisko] <br> [@tovary]';} $vypis->set ("tovary", print_r($tovary, true)); $vypis->set ("meno", $meno); ... |
||
tomas2245 Profil |
Keeehi:
nefunguje to aj tak, podľa môjho názoru by bolo najlepšie keby som ťa kontaktoval na mail, vidím ho u teba v profile..a poslal ti celý ten súbor nech máš lepšiu predstavu ako to vypadá, čo ti nato, alebo môžem tu proste poslať celý obsah súbora, ako som to robil doteraz, čo bude pre teba lepšie? |
||
Keeehi Profil |
#15 · Zasláno: 20. 11. 2016, 17:36:54
tomas2245:
„nefunguje to aj tak,“ To jsi to evidentně nevrátil do původního stavu. Nejdříve to vrať tak, jak ti bylo dnes ráno/včera večer, kdy to místo výrobků posílalo Array. A pak proveď úpravu podle řádku 3 v [#13]. Když se úspěšně dostaneš do původního stavu, tato úprava by to neměla nijak rozbít. |
||
tomas2245 Profil |
Keeehi:
napisal som ti na tvoj mail uz som na nieco prisiel, je to zdlhave na vysvetlenie |
||
tomas2245 Profil |
už som to vyriešil, môžete lock tému :) a Keeehi, ešte raz ďakujem za snahu mi pomôcť :)
|
||
Časová prodleva: 8 let
|
0