Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] boton buscar en php

Estas en el tema de boton buscar en php en el foro de PHP en Foros del Web. Buen dia. necesito de una ayudita por favor, lo que pasa es que tengo un bd llamada reportes donde tengo los campos encuesta1, encuesta2, encuesta3, ...
  #1 (permalink)  
Antiguo 13/06/2015, 11:17
 
Fecha de Ingreso: marzo-2015
Mensajes: 184
Antigüedad: 9 años, 1 mes
Puntos: 3
Pregunta boton buscar en php

Buen dia.
necesito de una ayudita por favor, lo que pasa es que tengo un bd llamada reportes donde tengo los campos encuesta1, encuesta2, encuesta3, y encuesta4. y cada uno obviamente con la info como nombre cedula etc.
lo que deseo es realizar un botón de buscar para que me muestre los datos buscados o que coincidan con la palabra que estoy buscando.

baje este codigo de internet pero no doy con la solucion.
Código PHP:
Ver original
  1. <html>
  2. <body>
  3.  
  4. <?php
  5. $buscar = $_POST['buscar'];
  6.  
  7. if (!isset($buscar)){
  8.       echo "Debe especificar una cadena a buscar";
  9.       echo "</html>buscar</body> \n";
  10.       exit;
  11. }
  12. $link = mysql_connect("localhost","root","","reportes");
  13. mysql_select_db("reportes", $link);
  14. $result = mysql_query("SELECT * FROM reportes WHERE nombre LIKE '%$buscar%' ", $link);
  15.  
  16. if ($row = mysql_fetch_array($result)){
  17.       echo "<table border = '1'> \n";
  18. //Mostramos los nombres de las tablas
  19. echo "<tr> \n";
  20. while ($field = mysql_fetch_field($result)){
  21.             echo "<td>$field->name</td> \n";
  22. }
  23.       echo "</tr> \n";
  24. do {
  25.             echo "<tr> \n";
  26.             echo "<td>".$row["id"]."</td> \n";
  27.             echo "<td>".$row["nombre"]."</td> \n";
  28.             echo "<td>".$row["direccion"]."</td> \n";
  29.             echo "<td>".$row["telefono"]."</td> \n";
  30.             echo "<td><a href='mailto:".$row["email"]."'>".$row["email"]."</a></td> \n";
  31.             echo "</tr> \n";
  32.       } while ($row = mysql_fetch_array($result));
  33.             echo "</table> \n";
  34. } else {
  35. echo "¡ No se ha encontrado ningún registro !";
  36. }
  37. ?>
  38.  
  39. </body>
  40. </html>

me arroja este error
Código PHP:
Ver original
  1. Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\proyectos\reportes\buscar.php on line 16
  2. ¡ No se ha encontrado ningún registro !

por favor una manito seria de mucha ayudita gracias

Última edición por devil65; 13/06/2015 a las 11:59
  #2 (permalink)  
Antiguo 13/06/2015, 14:31
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: boton buscar en php

El mensaje de error es bastante claro y se refiere a que la consulta no se realizó correctamente; entonces, para saber dónde esta el error:

Código PHP:
Ver original
  1. $result = mysql_query(/* Aquí tu consulta e identificador de enlace */) or die('Error en consulta: ' . mysql_error());
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 14/06/2015, 00:09
 
Fecha de Ingreso: junio-2015
Mensajes: 10
Antigüedad: 8 años, 10 meses
Puntos: 0
Respuesta: boton buscar en php

Hola el problema es censillo. la consulta no te esta regresndo ningun dato, le pasas mal la variable al like

en esa consulta deveria ir asi


SELECT * FROM reportes WHERE nombre LIKE '%".$dato."%';

y si lo haces con un procedimeinto almacenado la variable tendria que ir asi

CREATE PROCEDURE `Buscar`(IN dato VARCHAR(100))
BEGIN
SELECT * FROM reportes WHERE nombre LIKE CONCAT('%',dato,'%');
END$$

eso es para buscar todas las concidencias a los caracteres con los que bsucas..

es mejor trabajar con procedimeintos almacenados que con las consulas sql en codigo php

saludos
  #4 (permalink)  
Antiguo 14/06/2015, 11:03
 
Fecha de Ingreso: marzo-2015
Mensajes: 184
Antigüedad: 9 años, 1 mes
Puntos: 3
Respuesta: boton buscar en php

hola mk 02 ya lo cambi asi
Código PHP:
Ver original
  1. $result = mysql_query("SELECT * FROM reportes WHERE nombre LIKE  '%".$buscar."%';");
  2. if ($row = mysql_fetch_array($result)){
  3.       echo "<table border = '1'> \n";

y sigue igual no se que estoy haciendo mal, por que según el error esto ahí pero no lo veo o no se como hacerlo.

la idea es que me busque en toda las tablas de mi db, si encuentra por ejemplo una palabra con c.

y Triby muchas gracias tambien por tu aporte me puedes indicar en donde pongo el codigo de error ya que soy principiante.

pido disculpas por mis preguntas pero soy nuevo en el desarrollo y lo unico que deseo es aprender.

muchas gracias
  #5 (permalink)  
Antiguo 15/06/2015, 04:23
 
Fecha de Ingreso: abril-2015
Ubicación: Castelldefels
Mensajes: 76
Antigüedad: 9 años
Puntos: 3
Respuesta: boton buscar en php

Hola Devil65, porque tienes dos while en la consulta?
  #6 (permalink)  
Antiguo 15/06/2015, 04:25
 
Fecha de Ingreso: noviembre-2014
Mensajes: 34
Antigüedad: 9 años, 4 meses
Puntos: 0
Respuesta: boton buscar en php

haz un print_r de result print_r($result); y dejanos ver la base de datos a ver si existe reportes y nombre, ya que el problema esta en la consulta, algun dato de conexion se te escapa,

Puedes hacer un error_reporting(E_ALL); y decirnos el error.
  #7 (permalink)  
Antiguo 15/06/2015, 14:42
 
Fecha de Ingreso: marzo-2015
Mensajes: 184
Antigüedad: 9 años, 1 mes
Puntos: 3
Respuesta: boton buscar en php

no muchachos estoy que no doy con el codigo y ya he repasado miles de videos y tutoriales pero nada que doy....... de casualidad y ustedes tienen un tuto o una pagina para hacer una consulta por php y msqli??
agradeceria mucho sus comentarios, esto es muy duro para los nuevos como yo

ahora cambie por otro codigo bajado de internet ahi se los muestro y les muestro el error.
Código PHP:
Ver original
  1. <?php
  2. $buscar="";
  3. $buscar=$_POST['buscar'];
  4.  
  5. mysqli_connect("localhost","root","");
  6. mysqli_select_db($buscar, "reportes");
  7.      if ($buscar !="") {
  8.    $busqueda=mysqli_query("SELECT * FROM reportes WHERE nombre LIKE '%".$buscar."%';");
  9.    while ($f=mysqli_fetch_array($busqueda)) {
  10.     echo $f['nombre'].'&nbsp;'."<br>";
  11.      
  12.     }
  13. }
  14.  
  15.  
  16.  
  17. ?>

aqui me arroja los errores.
Warning: mysqli_select_db() expects parameter 1 to be mysqli, string given in C:\xampp\htdocs\proyectos\reportes\buscar.php on line 7

Warning: mysqli_query() expects at least 2 parameters, 1 given in C:\xampp\htdocs\proyectos\reportes\buscar.php on line 9

Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, null given in C:\xampp\htdocs\proyectos\reportes\buscar.php on line 10

y en mi base de datos tengo lo siguiente una bd que se llama "reportes" con 4 campos que se llaman
pc_hogar, aqui las columnas
id
nombre.
telefono.
direccion.
y asi con las demas
pc_empresa,
imp_hogar
y imp_empresa

adicionalmente este es mi metodo de envio al buscador
Código PHP:
Ver original
  1. <html>
  2. <body>
  3. <form method="POST" action="buscar.php">
  4. <strong>Palabra clave:</strong> <input name="buscar"  type="text" id="buscar">
  5. <input type="submit" name="buscar" value="buscar" />
  6.  
  7. </form>
  8. </body>
  9. </html>

espero sus amables comentarios
gracias

Última edición por devil65; 15/06/2015 a las 15:57
  #8 (permalink)  
Antiguo 15/06/2015, 21:22
Avatar de lucasphp  
Fecha de Ingreso: mayo-2009
Ubicación: Misiones
Mensajes: 170
Antigüedad: 14 años, 11 meses
Puntos: 3
Respuesta: boton buscar en php

Cita:
Iniciado por devil65 Ver Mensaje
no muchachos estoy que no doy con el codigo y ya he repasado miles de videos y tutoriales pero nada que doy....... de casualidad y ustedes tienen un tuto o una pagina para hacer una consulta por php y msqli??
agradeceria mucho sus comentarios, esto es muy duro para los nuevos como yo

ahora cambie por otro codigo bajado de internet ahi se los muestro y les muestro el error.
Código PHP:
Ver original
  1. <?php
  2. $buscar="";
  3. $buscar=$_POST['buscar'];
  4.  
  5. mysqli_connect("localhost","root","");
  6. mysqli_select_db($buscar, "reportes");
  7.      if ($buscar !="") {
  8.    $busqueda=mysqli_query("SELECT * FROM reportes WHERE nombre LIKE '%".$buscar."%';");
  9.    while ($f=mysqli_fetch_array($busqueda)) {
  10.     echo $f['nombre'].'&nbsp;'."<br>";
  11.      
  12.     }
  13. }
  14.  
  15.  
  16.  
  17. ?>

aqui me arroja los errores.
Warning: mysqli_select_db() expects parameter 1 to be mysqli, string given in C:\xampp\htdocs\proyectos\reportes\buscar.php on line 7

Warning: mysqli_query() expects at least 2 parameters, 1 given in C:\xampp\htdocs\proyectos\reportes\buscar.php on line 9

Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, null given in C:\xampp\htdocs\proyectos\reportes\buscar.php on line 10

y en mi base de datos tengo lo siguiente una bd que se llama "reportes" con 4 campos que se llaman
pc_hogar, aqui las columnas
id
nombre.
telefono.
direccion.
y asi con las demas
pc_empresa,
imp_hogar
y imp_empresa

adicionalmente este es mi metodo de envio al buscador
Código PHP:
Ver original
  1. <html>
  2. <body>
  3. <form method="POST" action="buscar.php">
  4. <strong>Palabra clave:</strong> <input name="buscar"  type="text" id="buscar">
  5. <input type="submit" name="buscar" value="buscar" />
  6.  
  7. </form>
  8. </body>
  9. </html>

espero sus amables comentarios
gracias
Te está diciendo que el error está en la función "mysqli_select_db".
Estás usando la variable $buscar en la función y no va ahí, va la variable de conexión.
  #9 (permalink)  
Antiguo 15/06/2015, 22:53
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: boton buscar en php

Cita:
Iniciado por lucasphp Ver Mensaje
[...] Estás usando la variable $buscar en la función y no va ahí, va la variable de conexión.
Y también en las demás funciones, tal y como lo explica el manual de la extensión mejorada MySQLi. Por eso jamás será recomendable limitarse a copiar y pegar código que se encuentre por ahí.

Por otro lado, lo que dijo mk02 no es completamente cierto ya que las comillas dobles en PHP permiten analizar y —por ende— tomar el valor de las variables, algo también explicado en el manual oficial de PHP.

Trata de seguir el consejo que te dio Triby para que puedas dar con el error. También prueba ejecutando la consulta (con el valor real y no con la variable) en el phpMyadmin. Si algo está mal, ahí también se generará un mensaje de error que te advertirá sobre el mismo.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #10 (permalink)  
Antiguo 17/06/2015, 11:02
 
Fecha de Ingreso: marzo-2015
Mensajes: 184
Antigüedad: 9 años, 1 mes
Puntos: 3
Respuesta: boton buscar en php

muchas gracias por sus comentarios igual llevo varios dias dandole a este codigo, si alguien tiene la logica de como van las sentencias en msqli se los agradeceria.

igual ahi seguire buscando mis resultados.

gracias a todos por tenerme tanta paciencia.
  #11 (permalink)  
Antiguo 18/06/2015, 10:13
 
Fecha de Ingreso: marzo-2015
Mensajes: 184
Antigüedad: 9 años, 1 mes
Puntos: 3
Respuesta: boton buscar en php

bueno amigos ya lo pude solucionar, me leí un par de tutoriales en google y lo cuadre a lo que yo lo necesitaba, aqui les dejo el codigo y desde ya muchas gracias por sus amables comentarios.
Código PHP:
Ver original
  1. <?php
  2. include("conexion_mos.php");
  3.  
  4. $buscar=$_POST['buscar'];
  5.  
  6. // Datos de conexion:
  7.  
  8.  
  9.  
  10.  
  11. if($buscar<>''){
  12.  
  13. $buscar = "SELECT id_encuesta , nombre FROM pc_hogar WHERE nombre LIKE '%".$buscar."%'";
  14.  
  15. $result = mysqli_query($conexion, $buscar) or die ("Error: ".mysqli_error($conexion));
  16. $row_cnt = mysqli_num_rows($result);
  17.  
  18. if($row_cnt>0){
  19.  
  20. echo "<p>Reportes: </p><ul>";
  21.  
  22. while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)){ echo "<li><a href='cursos.php?idarea=".$row['id_encuesta']."'>" . utf8_encode($row['nombre']) . "</a></li>";}
  23.  
  24. echo "</ul>";
  25.  
  26. }
  27.  
  28. }  
  29. ?>

Etiquetas: boton, html, mysql, registro, select, tabla
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 17:20.