Autor | Zpráva | ||
---|---|---|---|
Brouzdalek Profil |
#1 · Zasláno: 3. 6. 2007, 12:04:30
Vytvořil jsem script, který vyhledává požadované záznamy z databáze MySQL. Problém ovšem nastane, když zadám hledat např. "5g", apod. - zkrátka nějakou kombinaci čísel a písmen. Poté je hlášena chyba:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in...... Správně by se mělo zadat pouze číslo od 1 do 30. Ale pokud vytvořím podmínku "if" s rozmezím, tak to stejně stále hlásí stejnou chybu. Myslím, že problém je v příkazu MySQL_Fetch_Array, který nezíská žádný výsledek dotazu (popř. v nesprávném formátu). Poradí mi někdo, jak ošetřit tuto chybu ? Předem všem děkuji !!
|
||
bukaj Profil |
#2 · Zasláno: 3. 6. 2007, 12:08:32
chyba je v dotazu na databázi u toho like by měly být %:
... |
||
DJ Miky Profil |
#3 · Zasláno: 3. 6. 2007, 12:08:35
$provedeni = MySQL_Query($vyber);
nahraď za: if($provedeni = MySQL_Query($vyber)) { // zbytek kódu, mysql_fetch_array atd. } |
||
DJ Miky Profil |
#4 · Zasláno: 3. 6. 2007, 12:11:16
bukaj
Kdyžtak: $vyber = "SELECT * FROM studenti WHERE ID LIKE "%".$hledat."%""; Ale pokud je ID celočíselné, bylo by lepší přímo: $vyber = "SELECT * FROM studenti WHERE ID=".$hledat; + ještě nezapomeň na ošetření SQL injection: ... mysql_real_escape_string($hledat) ... |
||
bukaj Profil |
#5 · Zasláno: 3. 6. 2007, 12:19:36 · Upravil/a: bukaj
DJ Miky
kdyžtak: $vyber = "SELECT * FROM studenti WHERE ID LIKE \"%".$hledat."%\""; |
||
Brouzdalek Profil |
#6 · Zasláno: 3. 6. 2007, 12:32:19
Děkuji všem za rady !!!
Osvědčilo se mi: $provedeni = MySQL_Query($vyber); nahraď za: if($provedeni = MySQL_Query($vyber)) { // zbytek kódu, mysql_fetch_array atd. } od DJ Miky ! Díky moc ! Funguje ;-)) |
||
Časová prodleva: 17 let
|
0