Foros del Web » Programando para Internet » PHP »

ayuda con warning al ejecutar un buscador en php

Estas en el tema de ayuda con warning al ejecutar un buscador en php en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 07/01/2007, 20:01
Avatar de kalixe985  
Fecha de Ingreso: junio-2006
Ubicación: Colombiano viviendo en Es
Mensajes: 73
Antigüedad: 17 años, 10 meses
Puntos: 0
De acuerdo ayuda con warning al ejecutar un buscador en php

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:

Código 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:
Código HTML:
<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!!!!
  #2 (permalink)  
Antiguo 07/01/2007, 23:24
Avatar de vevni  
Fecha de Ingreso: julio-2005
Ubicación: cancun mexico
Mensajes: 598
Antigüedad: 18 años, 9 meses
Puntos: 3
Re: ayuda con warning al ejecutar un buscador en php

bueno, al pasar del formulario a buscador.php
se creare el siguiente valor, $_POST["T1"];
que es el que contendra el valor de la palabra clave....

despues asignas como nombre del boton submit $buscar, pero no le veo el significado a ello..

buscador.php recogera los valores que hayas mandado por post,
entonces se debio haber creado $_POST["T1"]; que es el que contendra la cadena a buscar o la clave...

pero tu en buscador.php
preguntas si se ah creado buscar, pero esta mal...
en el if anterior estabas mal, puesto que preguntabas que si estaba creada, mandara error, ademas nunca iva a existir $buscar.

en este if preguntas negando, !isset que significa que si no esta creada. mande error
Código PHP:
if ( !isset($_POST["T1"])){ 
      echo 
"Debe especificar una cadena a buscar"
      echo 
"</html></body> \n"
      exit; 


y ya despues lo puedes usar aqui
$result 
mysql_query("SELECT * FROM agenda WHERE nombre LIKE '%".$_POST["T1"]."%' ORDER BY nombre"$link); 

y te mandaba error porque como no existia buscar pues no arrojaba nada la consulta y feth_array no tenia datos por eso.

siempre debes de validar tu consultay no lo hicistesaludos,. 
__________________
Código PHP:
echo"hola mundo ver 1221332143.02";
echo
"cuantos usuarios habran impreso hola mundo en el mundo.!???"
  #3 (permalink)  
Antiguo 08/01/2007, 10:46
Avatar de kalixe985  
Fecha de Ingreso: junio-2006
Ubicación: Colombiano viviendo en Es
Mensajes: 73
Antigüedad: 17 años, 10 meses
Puntos: 0
De acuerdo Re: ayuda con warning al ejecutar un buscador en php

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í:
Código PHP:
<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!!!!
  #4 (permalink)  
Antiguo 08/01/2007, 11:28
 
Fecha de Ingreso: julio-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.304
Antigüedad: 18 años, 9 meses
Puntos: 6
Re: ayuda con warning al ejecutar un buscador en php

Código PHP:
<html> 
<body>   
<?php 
if (!isset($_POST["T1"];)){
      echo 
"Debe especificar una cadena a buscar"
      echo 
"</html></body> \n"
      exit; 
}else{
     
$buscar $_POST["T1"];
}
$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>

Y asi? El problema es que no aplicaste lo que te comento vevni.

Saludos.
__________________
Federico.

Mi página: www.jourmoly.com.ar
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 16:00.