Autor | Zpráva | ||
---|---|---|---|
quad Profil * |
#1 · Zasláno: 29. 5. 2012, 13:33:34
public function get_category($id) { // Vybereme kategorii podle $id $sql = "SELECT * FROM kategorie WHERE id=$id"; // Provedeme příkaz sql a uložíme jako zdroj $resource = mysql_query($sql); // Z výsledku(zdroje) získáme objekty s daty while($col = mysql_fetch_object($resource)) { print "<input type='text' value='$col->kat' name='values[]'>"; } // Pokud klikneme na tlačítko Uložit změny if(isset($_POST['save'])) { $array = $_POST['values']; if(is_array($array)) { foreach($array as $key => $value) { $sql="UPDATE kategorie SET kat='$value' WHERE id='$id'"; } } print $sql.'<br>'; mysql_query($sql); } } kdyz dam $this->get_category(1); $this->get_category(2); s nejakymi hodnotami pak je vysledek prikazu pro hodnoty pavel, jakub > UPDATE kategorie SET kat='jakub' WHERE id='1'; UPDATE kategorie SET kat='jakub' WHERE id='2'; ale to mi samozrejme ulozi 2x jakub, jak docilit toho, aby se mi ulozili obe hodnoty? :// |
||
Kajman Profil |
#2 · Zasláno: 29. 5. 2012, 13:48:23
Na řádku 19. asi bude lepší dát identifikaci primárního klíče do hranatých závorek.
Řádky 39 a 41 patří dovnitř foreach, jinak v proměnné $sql bude jen poslední stav. A vstupy od uživatele máte náchylné na sql injection. |
||
quad Profil * |
#3 · Zasláno: 29. 5. 2012, 14:01:47
tomu nerozumím je to v hranatých závorkách
|
||
Kajman Profil |
Takhe v $_POST['values'] bude pole se dvěma jmény, ale nebudete vědět, které patří ke kterému id.
Lépe se Vám to bude zpracovávat, když si to v html označíte. print "<input type='text' value='".htmlspecialchars($col->kat)."' name='values[{$col->id}]'>"; |
||
quad Profil * |
#5 · Zasláno: 29. 5. 2012, 14:12:21 · Upravil/a: quad
já vím, ale já potřebuji mít ta dvě jména různá :( tedy ke každému id jiné, a hledám chybu proč to nejde
vypisuje mi to totiž dvě stejná jména, ale nápad s hran.závorkou vítám potrebuji updatovat ty dve kategorie, ale hodnoty ktere zapisu do inputu se mi ulozi do db obe stejne :( |
||
Kajman Profil |
#6 · Zasláno: 29. 5. 2012, 14:20:49
V tom foreach pak budete mít naplněné $key, které můžete použít ve where místo $id.
|
||
quad Profil * |
#7 · Zasláno: 29. 5. 2012, 14:23:47 · Upravil/a: quad
ja potrebuji proste predat hodnotu toho inputu, nejprve vypsat z db do input a pote co uzivatel prepise, tu prepsanou ulozit
v tom $key jsou ale stejná ta id |
||
Kajman Profil |
#8 · Zasláno: 29. 5. 2012, 15:26:19
quad:
„v tom $key jsou ale stejná ta id“ Nejsou - po té úpravě budou v $key správná id k těm názvům. |
||
quad Profil * |
#9 · Zasláno: 30. 5. 2012, 11:17:31 · Upravil/a: quad
už to funguje, ale píše to Notice: Undefined index: sluzby $sluzby = $_POST['sluzby']; kdyz mam print "<input type='text' class='sluzby' value='$col->sluzby' name='sluzby[]'>"; tak to prece neni chyba ne? nebo jak mam to pole pomoci postu efektivneji prenest?
uz to mam |
||
Časová prodleva: 12 let
|
0