PHP - ayuda consulta concatenada por varios criterios

 
Vista:

ayuda consulta concatenada por varios criterios

Publicado por Velma Kelly (39 intervenciones) el 26/10/2009 17:47:31
Hola,

Tengo una super duda y esque estoy haciendo un sistema donde tengo que realizar una consulta con varios criterios pero me aparecen los siguientes errrores

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\Mydevcorwebsite\aut_cons_crit.php on line 280

Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\Mydevcorwebsite\aut_cons_crit.php on line 320

son las siguientes lineas:

linea 280: while($resultados=mysql_fetch_array($sql)){
linea 320: mysql_free_result($sql);

esta es mi consulta:

if ($_GET['accion']=="consultaventa"){
$telefono=$_POST['telefono'];
$nuevost=$_POST['nuevost'];
$oserin=$_POST['oserin'];

$sql="SELECT * FROM general WHERE ";
if(isset($telefono) && $telefono!=""){
$sql.="notel='".$telefono."'";
}
elseif(isset($nuevost) && $nuevost!=""){
$sql.="idstatus='".$nuevost."'";
}
elseif(isset($oserin) && $oserin!=""){
$sql.="os_inf='".$oserin."'";
}
$resultaconsulta=mysql_query($sql);

y asi lo imprimo

while($resultados=mysql_fetch_array($sql)){
echo <<< HTML
<tr>
<td width="3%" bgcolor="#ECF5F9"><div align="center"><font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#000000">$resultados[no_tel]</font></div></td>

Alguien puede decirpe que estoy haciendo mal??
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:ayuda consulta concatenada por varios criterios

Publicado por Diego Romero (1450 intervenciones) el 26/10/2009 18:05:53
La variable $sql contiene la sentencia SQL que se ejecuta, la variable $resultaconsulta contiene el resultado de esa ejecución. La función mysql_fetch_array() necesita el resultado de una consulta SQL, no la sentencia, por tanto la línea 280 debe ser:

while($resultados=mysql_fetch_array($resultaconsulta)){

He allí todo el problema.

Igual, no estoy seguro que la sentencia SQL esté bien armada. La cláusula WHERE podría traerte problemas si los literales de comparación contienen espacios, sería mejor si encerraras esos literales con comillas simples.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar