2010-05-16 16 views
6

Estoy recuperando valores de la url con el método GET y luego usando una instrucción if para determinar si están allí y luego consultarlos contra la base de datos para mostrar solo aquellos elementos que coinciden con ellos, obtengo un error desconocido con tu petición. Aquí está mi códigomysql_query donde instrucción

$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*/ 

Respuesta

6

Usted necesita comillas simples redondas cuerdas en SQL:

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

Tenga en cuenta que la construcción de la consulta de esta manera se podría dejar en situación de riesgo de un vulnerabillity inyección de SQL. Considera usar mysql_real_escape_string en su lugar.

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

+1 porque la única manera correcta de tratar con la entrada del usuario es escapar de ella. –

+1

+1 respuesta sin un agujero de seguridad. Considere también las consultas parametrizadas ('mysqli'/PDO). – bobince

+0

Gracias por la respuesta rápida y esto funcionó perfectamente e incluí la opción escapes. –

Cuestiones relacionadas