Foros del Web » Programando para Internet » PHP »

Busqueda

Estas en el tema de Busqueda en el foro de PHP en Foros del Web. Amigos me podrian decir si hay errores en este codigo? Código PHP: <form name="busqueda" action="prueba.php" method="post"> <select name="select1" size="1">   <option value="ciudad" selected> Todos </option>   <option value="cordoba">cordoba</option>   <option value="capital">capital</option> </select> <select name="select2" size="1"> <option>Ciclo </option> <option value="panamericano">panamericano</option> <option value="avellaneda">avellaneda</option> </select> <select name="select3" size="1"> <option>Cultivo</option> ...
  #1 (permalink)  
Antiguo 11/07/2010, 09:10
 
Fecha de Ingreso: marzo-2010
Mensajes: 28
Antigüedad: 14 años, 1 mes
Puntos: 0
Busqueda

Amigos me podrian decir si hay errores en este codigo?


Código PHP:
<form name="busqueda" action="prueba.php" method="post">
<select name="select1" size="1">
  <option value="ciudad" selected> Todos </option>
  <option value="cordoba">cordoba</option>
  <option value="capital">capital</option>
</select>
<select name="select2" size="1">
<option>Ciclo </option>
<option value="panamericano">panamericano</option>
<option value="avellaneda">avellaneda</option>
</select>

<select name="select3" size="1">
<option>Cultivo</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>

<input name="submit" type="submit" value="Buscar">
<form/>

<?php

// conexión con base de datos
$link mysql_connect('localhost''root''');
if (!
$link) {
die(
'Could not connect: ' mysql_error());
}

$db_selected mysql_select_db('inmobilia'$link);
if (!
$db_selected) {
die (
'Can\'t use inmobilia : ' mysql_error());
}

if (isset(
$_POST['action']) && $_POST['action'] == 'submit'){

$select1 $_POST['select1'];
$select2 $_POST['select2'];
$select3 $_POST['select3'];
}
$condiciones "";
if (
$select1 != ""$condiciones .= "WHERE ciudad = $select1";
if (
$select2 != "" && $condiciones != ""$condiciones .= " AND $select2 = barrio";
if (
$select2 != "" && $condiciones == ""$condiciones .= " WHERE $select2 = barrio";
if (
$select3 != "" && $condiciones != ""$condiciones .= " AND $select3 = habitaciones";
if (
$select3 != "" && $condiciones == ""$condiciones .= " WHERE $select3 = habitaciones";


echo 
'<table width="90%" border="0" align="center" class="txt-verd-08">';
echo 
' <tr>';
echo 
' <td height="30" align="center"><strong>Municipio</strong></td>';
echo 
' <td height="30" align="center"><strong>Ciclo</strong></td>';
echo 
' <td height="30" align="center"><strong>Cultivo</strong></td>';
echo 
' </tr>';


$sql="SELECT * FROM inmobilia.inmobiliaria ".$condiciones;
$result mysql_query($sql$link);
while(
$row=mysql_fetch_array($resultMYSQL_ASSOC))
{

echo 
' <tr>';
echo 
' <td align="center">' .$row["ciudad"]. '</td>';
echo 
' <td align="center">' .$row["barrio"]. '</td>';
echo 
' <td align="center">' .$row["habitaciones"]. '</td>';
echo 
' </tr>';

}


mysql_close($link);

echo 
'</table>';
?>
es un buscador web de una base de datos, cuando carga la web todo perfecto, pero a la hora de buscar un resultado tira el siguiente error:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\WM\www\a\prueba.php on line 62
  #2 (permalink)  
Antiguo 11/07/2010, 09:13
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Busqueda

has un echo $sql;, y busca si hay error de sintaxis en el SQL

debes especificar con comillas simples, todo aquelo que sean cadenas en el sql:

if ($select2 != "" && $condiciones != "") $condiciones .= " AND '$select2' = 'barrio'";
  #3 (permalink)  
Antiguo 11/07/2010, 09:27
 
Fecha de Ingreso: marzo-2010
Mensajes: 28
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Busqueda

Cita:
Iniciado por maycolalvarez Ver Mensaje
has un echo $sql;, y busca si hay error de sintaxis en el SQL

debes especificar con comillas simples, todo aquelo que sean cadenas en el sql:

if ($select2 != "" && $condiciones != "") $condiciones .= " AND '$select2' = 'barrio'";
Gracias amigo arregle eso y ya no tira mas error! pero tampoco realiza la busqueda :(
  #4 (permalink)  
Antiguo 11/07/2010, 09:33
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Busqueda

bueno, eso depende de la lógica de tu búsqueda, si ejecutas ese SQL directamente en un visor de bases de datos (como phpmyadmin) y no te devuelve resultados es porque las condicionantes o no coinciden o producen sesgo, ejemplo que el charset de la BD sea sensible a mayúsculas.

generalmente en las búsquedas suele usarse patrones de expresiones regulares, como por ejemplo LIKE:

select * from alumnos where nombre like 'A%'; //devuelve todos los alumnos cuyo nombre comience por A

Etiquetas: busquedas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:10.