Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: dark_sargon en 12 Marzo 2009, 00:53 am



Título: Búsqueda en mysql con php
Publicado por: dark_sargon en 12 Marzo 2009, 00:53 am
Un saludo...

He buscado muchos códigos en php para hacer un buscador pero la verdad no he encontrado lo que necesito.

Tengo una tabla en mysql con muchos registros... me gustaría saber si es posible hcer un buscador que relacione palabras digitadas en un campo de texto con palabras que estén en la tabla de mysql y luego mostrar toda la fila completa.

Por ejemplo:
Tengo una tabla con los campos "nombre", "email" y "telefono"...
Busco por "andres"... entonces me debe aparecer:


Nombre                    E-mail                              Teléfono
Andres Perez            andres@email.com            883900392


Es posible esto?.. alguien me podría ayudar? por favor.


Muchas gracias, adiós
 


Título: Re: Búsqueda en mysql con php
Publicado por: dark_sargon en 12 Marzo 2009, 01:14 am
 :o lo siento.. este post no debería ir acá... ando como elevado.

Disculpen... aun así quien quiera ayudarme, respondame porfavor.

Gracias


Título: Re: Búsqueda en mysql con php
Publicado por: cassiani en 12 Marzo 2009, 01:24 am
usas el operador "Like" en tu consulta.

Código
  1. SELECT * FROM tabla WHERE Nombre LIKE '%andres%'


Título: Re: Búsqueda en mysql con php
Publicado por: Agente Naranja en 13 Marzo 2009, 13:08 pm
Citar
Para ello tienes que utilizar el operador LIKE. Por ejemplo:

select * from usuario where nombre like "%luis%"

Eso devuelve todos los usuarios que tienen "luis" en algún lugar del campo nombre. Nos sevolvería los registros con nombres como "luis", "luis alberto" o "jose luis".

Utilizando el operador like podemos utilizar comodines, como el % que acabamos de ver.

- El comodín % sirve para cambiarlo por cualquier caracter o grupo de caracteres.

- El comodín _ (guión bajo) se puede utilizar para cambiarlo por cualquier caracter.

Tomado de : http://www.desarrolloweb.com/faq/273.php


Título: Re: Búsqueda en mysql con php
Publicado por: dark_sargon en 14 Marzo 2009, 00:50 am
Señores, muchas gracias por la ayuda y el tiempo, ya no los molesto más  :)

Solo una última pregunta:
¿Cómo puedo hace para que a partir de esta búsqueda, se muestre todo el registro de la tabla? (PHP)

Digamos si pongo:
Código:
SELECT * FROM tabla WHERE Nombre LIKE '%andres%'

El resultado sería:

Código:
Nombre
Andres

Y el resultado de la consulta debe ser:

Código:
Nombre              E-mail                 Teléfono
Andres              alguien@host.com       58674958

mm.. ¿Sí me entienden?  :P
Es decir que no solo muestre el campo que comparó sino que también muestre los que se relacionan con este.

Un saludo



Título: Re: Búsqueda en mysql con php
Publicado por: cassiani en 14 Marzo 2009, 02:24 am
Así como está debería devolverte todos los campos de la tabla, algo estas haciendo mal


Título: Re: Búsqueda en mysql con php
Publicado por: survil en 14 Marzo 2009, 02:33 am
al hacer esto:

Código
  1. SELECT * FROM tabla WHERE Nombre LIKE '%andres%'

obtienes todos los campos de el Registro

un ejemplo mas completo:

seleccionas la Base de Datos "nombre_BD" y ejecutas el query
Código
  1. $consulta= mysql_db_query("nombre_BD","SELECT * FROM tabla WHERE Nombre LIKE %andres%")

seleccionas el primer registro que tienes en la variable $consulta
Código
  1. $registro=mysql_fetch_array($consulta)

y por ultimo accedes por medio de un array asociativo a cada uno de los campos de el registro.
Código
  1. $nombre=registro["nombre"];
  2.                $email=registro["E-mail"];
  3.                $Telefono=registro["Telefono"];
  4.  








Título: Re: Búsqueda en mysql con php
Publicado por: cassiani en 14 Marzo 2009, 02:38 am
exacto, prueba a hacer la consulta directamente en la consola y veras, tu error es el code. si quieres postealo y vemos que se le hace.

saludos,


Título: Re: Búsqueda en mysql con php
Publicado por: Agente Naranja en 14 Marzo 2009, 14:59 pm
Reemplaza mysql_db_query por mysql_query. Según la página oficial de PHP, esta función está obsoleta:

Citar
5.3.0   This function now throws an E_DEPRECATED notice.

Pero de resto está bién, aunque yo uso normalmente mysql_fetch_assoc en lugar de mysql_fetch_array, me parece un poco más ordenado.

Código
  1. $mysql_query = "SELECT * FROM tabla WHERE Nombre LIKE '%andres%'";
  2.  
  3. $mysql_query_resource = mysql_query($query);
  4.  
  5. while($row = mysql_fetch_assoc($mysql_query_resource) ){
  6.  echo $row['nombre'];
  7.  echo $row['telefono'];
  8.  //Etc...
  9. }


Título: Re: Búsqueda en mysql con php
Publicado por: dark_sargon en 14 Marzo 2009, 20:42 pm
:D Oh, ya veo...

Muchas gracias a todos por la ayuda.
Pude hacer lo que quería... poner campo de texto y un botón buscar y funciona bien.

Un saludo.