PHP - ayuda con warning en buscador

 
Vista:

ayuda con warning en buscador

Publicado por kalixe985 (3 intervenciones) el 08/01/2007 02:52:45
HOla!!
Estoy haciendo una mínima web para una práctica, pero al querer ponerle un buscador, me sale siempre el siguiente error:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C: \Servidor\WEB\buscador.php on line 13
¡ No se ha encontrado ningún registro !

*****************************************************************************
Mi código php es el siguiente, está en el archivo buscador.php:
<html>
<body>

<?php
if (isset($buscar)){
echo "Debe especificar una cadena a buscar";
echo "</html></body> \n";
exit;
}
$link = mysql_connect("localhost", "kalixe985","garzimba985");
mysql_select_db("mydb", $link);
$result = mysql_query("SELECT * FROM agenda WHERE nombre LIKE '%$buscar%' ORDER BY nombre", $link);
if ($row = mysql_fetch_array($result)){
echo "<table border = '1'> \n";
//Mostramos los nombres de las tablas
echo "<tr> \n";
while ($field = mysql_fetch_field($result)){
echo "<td>$field->name</td> \n";
}
echo "</tr> \n";
do {
echo "<tr> \n";
echo "<td>".$row["id"]."</td> \n";
echo "<td>".$row["nombre"]."</td> \n";
echo "<td>".$row["direccion"]."</td> \n";
echo "<td>".$row["telefono"]."</td> \n";
echo "<td><a href='mailto:".$row["email"]."'>".$row["email"]."</a></td> \n";
echo "</tr> \n";
} while ($row = mysql_fetch_array($result));
echo "</table> \n";
} else {
echo "¡ No se ha encontrado ningún registro !";
}
?>
</body>
</html>
*****************************************************************************
Y el html es:
[<html>
<body>
<form method="POST" action="http ://localhost/buscador.php">
<strong>Palabra clave:</strong> <input type="text" name="T1" size="20"><br><br>
<input type="submit" value="Buscar" name="$buscar">
</form>
</body>
</html>
********************************************************************************
A ver si alguien me puede ayudar....Muchas gracias de antemano!!!!
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
sin imagen de perfil
Val: 1.071
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

RE:ayuda con warning en buscador

Publicado por Yamil Bracho (888 intervenciones) el 08/01/2007 12:44:52
Se ve bien...
Para chequear que se trajo registros, en vez de usar

i f ($row = mysql_fetch_array($result)) {

usa

f (@mysql_num_rows($result)>0) {
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

RE:RE:ayuda con warning en buscador

Publicado por kalixe985 (3 intervenciones) el 08/01/2007 17:33:54
Hola!!!
Me ha servidor mucho tu respuesta. Ahora el problema que tengo es que, al buscar un nombre, me muestra todos los datos de la base de datos, y no muestra solamente la fila que me interesa. Por ejemplo, si tengo una base de datos con 3 registros, cuyos campos "nombre" son: carlos, pepe, luis, si hago una búsqueda de "pepe", me muestra las 3 filas, y no solamente la fila de pepe, que es lo que quiero. Perdona mi ignorancia, es que el codigo me lo pasó un compañero y no acabo de entender algunas cosas. Lo he dejado así:
***************************************************************************************
<html>
<body>
<?php
if (isset($buscar)){
echo "Debe especificar una cadena a buscar";
echo "</html></body> \n";
exit;
}
$link = mysql_connect("localhost", "usuario","contraseña" ;
mysql_select_db("prueba", $link);
$result = mysql_query("SELECT * FROM agenda WHERE nombre LIKE '%$buscar%' ORDER BY nombre", $link);
$row2=@mysql_num_rows($result);
echo($row2); //me da 3, cuando deberia dar 1
if ( $row2 > 0){
if ($row = @mysql_fetch_array($result)){
echo "<table border = '1'> \n";
//Mostramos los nombres de las tablas
echo "<tr> \n";
while ($field = mysql_fetch_field($result)){
echo "<td>$field->name</td> \n";
}
echo "</tr> \n";
do {
echo "<tr> \n";
echo "<b><td>".$row["nombre"]."</td></b> \n";
echo "<td>".$row["direccion"]."</td> \n";
echo "<td>".$row["telefono"]."</td> \n";
echo "<td><a href='mailto:".$row["email"]."'>".$row["email"]."</a></td> \n";
echo "</tr> \n";
}
while ($row = mysql_fetch_array($result)); {
echo "</table> \n"; }
}
} else {
echo "¡ No se ha encontrado ningún registro !"; }
?>

</body>
</html>
+***************************************************************************************
Gracias por tu ayuda!!!!
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
sin imagen de perfil
Val: 1.071
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

RE:RE:ayuda con warning en buscador

Publicado por Yamil Bracho (888 intervenciones) el 08/01/2007 19:47:10
Guarda el sql en una varibale e imprimela para ver que tiene:
$sql = "SELECT * FROM agenda WHERE nombre LIKE '%$buscar%' ORDER BY nombre";
echo "sql=$sql";
$result = mysql_query($sql, $link);
...
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

RE:RE:ayuda con warning en buscador

Publicado por kalixe985 (3 intervenciones) el 08/01/2007 21:12:26
Muchas gracias, he logrado que me funcione. Saludos!!!!
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