Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/06/2005, 10:30
rstory
 
Fecha de Ingreso: junio-2003
Mensajes: 74
Antigüedad: 20 años, 10 meses
Puntos: 1
Ayuda con este buscador

Saludos.

Tengo este codigo, el cual funciona casi perfecto lo unico que hace mal es que empieza a buscar en la tabla pero cuando localiza y resultado del primer campo ya empieza a buscar en el segundo campo y cuando localiza otro resultado deja de buscar y muestra el resultado, a fin de cuentas muestra solo 2 resultados cuando deberia mostrar todos los resultados que hay en la tabla que correspondan con la palabra requerida.

<form method = "POST" action = "prueba.php">
<table width="403" align="center">
<tr>
<td><div align="center">Buscar:
<input type="text" name="palabra" id="palabra" size="20">
<input type="submit" name="Submit" value="GO">
</div></td>
</tr>
</table>

<?PHP

//busca en una base de datos hecha en mysql
$campo = array("title", "short_desc");
//aqui ponemos los campos de la tabla en que queremos buscar
$numelentos = count($campo);//toma el numero de campos y lo guarda para usarla despues
$bandera = "si";//bandera para indicar si se encontro la palabra
for ($i=0; $i < $numelentos; $i++)
//realizaremos el recorrido de busqueda en cada campo que seleccionamos de nuestra tabla
{// inicio for
$campoac= $campo[$i];//guardamos el campo actual

$a= $_POST['palabra'];//Guardamos la palabra que se buscara

if ($a==false)// si no se ingreso una palabra nos avisa
{
echo "<p>Debe especificar la busqueda</p> \n";
echo "</html></body> \n";
exit;
}

$link = mysql_connect("localhost", "root", "");
//si se ingreso la palabra nos conectamos
mysql_select_db("buscador2", $link);
//que busque en el campo actual la palabra enviada y lo ordene por un campo especifica
$sql = "SELECT url, title, short_desc FROM sites WHERE title LIKE '%{$_POST['palabra']}%' ORDER BY title";
$result = mysql_query($sql, $link);

if ($row = mysql_fetch_array($result))// si se encontro la palabra
{
mysql_field_seek($result,0);
while ($field = mysql_fetch_field($result)){
$url = $row['url'];
echo "<td><b></b></td> \n";
}
//imprimimos nustros resultados do
{
echo "<table width=\"431\">
<tr> <td width=\"425\"><tr>
<td><a href=\"$url\"><b>".$row["title"]."</b></a></td></tr>
<tr><td>".$row["short_desc"]."</td></tr>
<tr><td><FONT class=\"url\">".$row["url"]."</font></td></tr>
</table>";
echo "<p> </p> \n";

$bandera = "no";//cambiamos la bandera para avisar que si se encontro la palabra
}
while ($row = mysql_fetch_array($result));
echo "</table> \n";
}

}//fin for
if ($bandera == "si") //si la bandera sigue en si es que no encontro la palabra y avisamos
{ echo "<p>¡No se ha encontrado ningún registro!</p>\n";
} ?> </form> </div>

Si alguien me pudiera decir como repararlo lo agradeceria, he intentado todo.

Mil gracias por su colaboracion.