2010-05-16 10 views
6

Sto recuperando i valori dall'URL con il metodo GET e quindi utilizzando un'istruzione if per determinare se sono lì, quindi li interrogiamo sul database per mostrare solo gli elementi corrispondenti, ottengo un errore sconosciuto con la tua richiesta. Ecco il mio codicemysql_query dove istruzione

$province = $_GET['province']; 
$city = $_GET['city']; 

if(isset($province) && isset($city)) {   
    $results3 = mysql_query("SELECT * 
          FROM generalinfo 
          WHERE province = $province 
          AND city = $city ") 
         or die("An unknown error occurred with your request");   
} else {    
    $results3 = mysql_query("SELECT * FROM generalinfo"); 
} /*if statement ends*/ 

risposta

6

È necessario apostrofi rotonde le stringhe in SQL:

"SELECT * FROM generalinfo WHERE province='$province' AND city='$city'" 

Nota che costruire la query in questo modo si potrebbe lasciare a rischio di un vulnerabillity SQL injection. Prendi in considerazione l'utilizzo di mysql_real_escape_string.

"SELECT * FROM generalinfo WHERE province='" . 
mysql_real_escape_string($province) . "' AND city='" . 
mysql_real_escape_string($city) . "'" 
+0

+1 perché l'unico modo corretto per gestire l'input dell'utente è di evitarlo. –

+1

+1 risposta senza buchi di sicurezza. Prendi in considerazione anche le query parametrizzate ('mysqli'/PDO). – bobince

+0

Grazie per la risposta rapida e questo ha funzionato perfettamente e ho incluso l'opzione di escape. –