Problemas en buscador

Estimado,
Tengo el siguiente problema: he creado un buscador direccionado a la tabla
dato_empresa
Con dos paginas una se llama:
---------------------------------------------------------
buscar.php
--------------------------------------------------------
<html>
<meta
http-equiv="content-type" content="text/html;
charset=iso-8859-1" />
<body>
<form method="POST"
action="recibe.php">
<strong>Palabra
clave:</strong> <input type="text" name="T1" size="30"><br><br>
<input type="submit"
value="Buscar" name="buscar">
</form>
</body>
</html>
Y la otra
Recibe.php
<html>
<meta
http-equiv="content-type" content="text/html;
charset=iso-8859-1" />
<body>
<?php
if (isset($buscar)){
echo "Debe especificar una cadena a buscar";
echo "</html></body> \n";
exit;
}
include("conexión.php");
$result = mysql_query("SELECT *
FROM dato_empresa WHERE empresa LIKE '%$buscar%' ORDER BY empresa ,
$conexión");
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->empresa</td> \n";
}
echo "</tr> \n";
do {
echo "<tr> \n";
echo
"<td>".$row["id_empresa"]."</td> \n";
echo
"<td>".$row["empresa"]."</td> \n";
echo
"<td>".$row["dirección"]."</td> \n";
echo
"<td>".$row["teléfono"]."</td> \n";
echo "<td><a
href='mailto:".$row["mail"]."'>".$row["mail"]."</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>
El problema
es que me da los siguientes errores:
Notice:
Undefined variable: buscar in C:\wamp\www\sants\recibe.php on line 16
Warning:
mysql_fetch_array() expects parameter 1 to be resource, boolean given in
C:\wamp\www\sants\recibe.php on line 18
De
antemano Gracias y saludos

1 respuesta

Respuesta
1

Primer error es no es un error sino una notificación.

El segundo error es que metiste $conexión dentro de la consulta a la base de datos en la query a la base de datos en mysql_query.

$result = mysql_query("SELECT *
FROM dato_empresa WHERE empresa LIKE '%$buscar%' ORDER BY empresa ,
$conexión");

debería ser así:

$result = mysql_query("SELECT *
FROM dato_empresa WHERE empresa LIKE '%$buscar%' ORDER BY empresa" ,
$conexión);

igual el código no te funcionaria, ya que al campo de búsqueda lo llamaste T1 y nunca lo usas en recibe.php
te dejo una variación de tu código que debería funcionar:

buscar.php

<html>
 <body>
  <form method="POST" action="recibe.php">
   <input type='hidden' name='accion' value='buscar' />
   <strong>Palabra clave:</strong>
   <input type="text" name="palabra_clave" value="" placeholder="Escriba aqui la palabra"/><br><br>
   <input type="submit" value="Buscar" />
  </form>
 </body>
</html>

y te dejo una parte de recibe.php

el resto lo completas vos

<html>
 <body>
<?php
if ($_POST['accion']=="buscar" && $_POST['palabra_clave']==""){
  echo "Debe especificar una cadena a buscar";
  echo "</html></body> \n";
  exit;
}
include("conexión.php");
$result = mysql_query("SELECT * FROM dato_empresa WHERE empresa LIKE '%".mysql_real_escape_string($_POST['palabra_clave'])."%' ORDER BY empresa",$conexión);
if ($row = mysql_fetch_array($result)){
 echo "<table border = '1'> \n";
 echo "<tr> \n";
while ($field = mysql_fetch_field($result)){
//....
}
//...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas