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 
ale nevypíše to všechny záznamy v tabulce, nevíte čím to muže být?
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

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: