Autor | Zpráva | ||
---|---|---|---|
free Profil * |
#1 · Zasláno: 28. 2. 2010, 13:10:02
Dobrý den, chci se zeptat kde je tady problém? Nejspíš se mu nelíbí "switch($_POST['productId']){", ale nejsem si jisej a pokud tomu tak je, tak jak to můžu nahradit aby to bylo funkční? Děkuju
switch($_POST['productId']){ while ($addy = mysql_fetch_array($add_products)) { case $addy["id_product"]; echo $addy["id_product"]."|||".$addy["name_product"]."|||".$addy["price"]; break; } } |
||
nightfish Profil |
#2 · Zasláno: 28. 2. 2010, 13:24:12
zajímavá konstrukce, chyb je tam několik, použití switche je zcela zbytečné...
while ($addy = mysql_fetch_array($add_products)) { if ($addy["id_product"] == $_POST['productId']) { echo $addy["id_product"]."|||".$addy["name_product"]."|||".$addy["price"]; } } a nebo ještě lépe doplnit omezení přímo do SQL dotazu... mysql_query("SELECT * FROM tabulka WHERE id_product = ".(int)$_POST['productId']); (předpokládá, že productId je celočíselná hodnota a že na celé stránce chceš načíst informace jenom o tomto jednom produktu) |
||
free Profil * |
#3 · Zasláno: 28. 2. 2010, 13:28:15
JJ, taky jsem si to uvedomil a dal jsem to podminkou where. Sakra vy jste dobrý. Co mě trvalo 30 minut jinej koukne a vidí :-) Děkuju
Jen se zeptám co znamená to (int)? To je proti sql injection? |
||
AM_ Profil |
#4 · Zasláno: 28. 2. 2010, 13:30:00
Jo, je to přetypování dané proměnné na integer, což je zde kvůli zachování správnosti SQL dotazu s jakýmkoli vstupem, včetně SQL injection.
|
||
free Profil * |
#5 · Zasláno: 28. 2. 2010, 13:34:20
Ještě jednou děkuju
|
||
Časová prodleva: 16 let
|
0