Extraño error
Intento realizar una busqueda en una base de datos, para ello tengo un buscador con 5 menús desplegables en los cuales existe la opción de no escoger nada. Mi intención es que si el usuario elige 5 características, la busqueda se haga con ese criterio de cinco características juntas que han de darse a la vez, y que si no elige ninguna opción y hace la busqueda, la base de datos le devuelva todos los registros que contiene (Porque no hay criterio restrictivo)
También debería poder elegir algunas características, de forma aislada.
Este es mi código y a continuación el error que me reporta:
<?
$base="bla";
$tabla="Datosinmueble";
$conexion=mysql_connect("bla","bla","bla");
mysql_select_db($base,$conexion);
$datoseleccion1=$_POST[envio1];
$datoseleccion2=$_POST[envio2];
$datoseleccion3=$_POST[envio3];
$datoseleccion4=$_POST[envio4];
$datoseleccion5=$_POST[envio5];
$pegar=mysql_query("SELECT * FROM $tabla WHERE (Modo='$datoseleccion1') or (Localidad='$datoseleccion2') or (Tipo='$datoseleccion3') or (Habitaciones='$datoseleccion4') or (Precio='$datoseleccion5')");
?>
<TABLE BORDER=1 CELLSPACING=1 CELLPADDING=1>
<TR>
<TD> Modo</TD>
<TD> Localidad </TD>
<TD> Tipo </TD>
<TD> Habitaciones </TD>
<TD> Precio </TD>
</TR>
<?
while($row = mysql_fetch_array($pegar)) {
printf("<tr><td> %s</td><td> %s </td><td> %s </td><td> %s </td><td> %s </td></tr>",
$row["Modo"],$row["Localidad"],$row["Tipo"],$row["Habitaciones"],$row["Precio"]);
}
mysql_close();
?>
EL ERROR:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource
También debería poder elegir algunas características, de forma aislada.
Este es mi código y a continuación el error que me reporta:
<?
$base="bla";
$tabla="Datosinmueble";
$conexion=mysql_connect("bla","bla","bla");
mysql_select_db($base,$conexion);
$datoseleccion1=$_POST[envio1];
$datoseleccion2=$_POST[envio2];
$datoseleccion3=$_POST[envio3];
$datoseleccion4=$_POST[envio4];
$datoseleccion5=$_POST[envio5];
$pegar=mysql_query("SELECT * FROM $tabla WHERE (Modo='$datoseleccion1') or (Localidad='$datoseleccion2') or (Tipo='$datoseleccion3') or (Habitaciones='$datoseleccion4') or (Precio='$datoseleccion5')");
?>
<TABLE BORDER=1 CELLSPACING=1 CELLPADDING=1>
<TR>
<TD> Modo</TD>
<TD> Localidad </TD>
<TD> Tipo </TD>
<TD> Habitaciones </TD>
<TD> Precio </TD>
</TR>
<?
while($row = mysql_fetch_array($pegar)) {
printf("<tr><td> %s</td><td> %s </td><td> %s </td><td> %s </td><td> %s </td></tr>",
$row["Modo"],$row["Localidad"],$row["Tipo"],$row["Habitaciones"],$row["Precio"]);
}
mysql_close();
?>
EL ERROR:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource
Hola igguana. No se mucho de PHP y solo he hecho algunas cosillas. Probablemente este equivocado pero no te falta pasarle la conexion a mysql_query? BYe
Me parece que lo más conveniente es guardar la consulta en una variable y luego desplegar la variable en pantalla. Esto porque puede que alguno de los valores que se reciben (envio1, envio2, etc) podrían traer alguna comilla simple o algo así. Lo que se puede hacer es:
$sql = "SELECT * FROM $tabla WHERE (Modo='$datoseleccion1') or (Localidad='$datoseleccion2') or (Tipo='$datoseleccion3') or (Habitaciones='$datoseleccion4') or (Precio='$datoseleccion5')";
echo $sql;
y así revisar la consulta que se esta mandando a mysql
$sql = "SELECT * FROM $tabla WHERE (Modo='$datoseleccion1') or (Localidad='$datoseleccion2') or (Tipo='$datoseleccion3') or (Habitaciones='$datoseleccion4') or (Precio='$datoseleccion5')";
echo $sql;
y así revisar la consulta que se esta mandando a mysql
