Autor | Zpráva | ||
---|---|---|---|
divady Profil |
Dobrý den,
mam takový problém v url si pošlu hodnotu regionu a pak pomocí dotazu na databázy vytahnu jednotlivé kody okresu které se nacházejí v regionu, uložím si je do pole viz ukázka if($_GET[region]!=""){ $vstup=mysql_query("SELECT * FROM okresy WHERE kod_kraj = '$_GET[region]'"); while ($vypis = mysql_fetch_array($vstup) ): $druhy = array(); $druhy [] = "okres LIKE '$vypis[nuts4]'"; endwhile; } a pak sestavuji dotaz $vstup=mysql_query("SELECT * FROM Dodavatele WHERE aktivni = 1 AND " . implode ( ' OR ', $druhy ) . " AND svj = 0 bude to v tom dotazujak se ptám na okresy a když dám echo "" . implode ( ' OR ', $druhy ) . ""; tak se ukaže jen jeden záznam
|
||
Tori Profil |
0. Neošetřený vstup přímo z GET do SQL dotazu je hazard, escapujte!
1. Operátor AND má vyšší prioritu než OR --> použijte závorky. 2. Pokud kódy okresů nemáte v DB uložené se zástupnými znaky (procento nebo podtržítko, pro LIKE), tak místo LIKE použijte normální porovnání s rovnítkem. SQL dotaz bude rychlejší. |
||
divady Profil |
Tori:
tori díky chbu jsem měl že jsem dal $druhy = array(); do cyklu a nevšimpl jsem si toho takže se mi to vždycky přepsalo
|
||
Časová prodleva: 10 let
|
0