Búsqueda en mysql con php

Iniciado por dark_sargon, 12 Marzo 2009, 00:53 AM

0 Miembros y 1 Visitante están viendo este tema.

dark_sargon

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
http://www.actimediaonline.com
Diseño Web, animación y más.

http://www.ciudadoscura.com
Diseño Web, electrónica, programación, móviles y más.

dark_sargon

 :o lo siento.. este post no debería ir acá... ando como elevado.

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

Gracias
http://www.actimediaonline.com
Diseño Web, animación y más.

http://www.ciudadoscura.com
Diseño Web, electrónica, programación, móviles y más.

cassiani

usas el operador "Like" en tu consulta.

Código (sql) [Seleccionar]
SELECT * FROM tabla WHERE Nombre LIKE '%andres%'

Agente Naranja

CitarPara 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

dark_sargon

#4
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:
SELECT * FROM tabla WHERE Nombre LIKE '%andres%'

El resultado sería:

Nombre
Andres


Y el resultado de la consulta debe ser:

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

http://www.actimediaonline.com
Diseño Web, animación y más.

http://www.ciudadoscura.com
Diseño Web, electrónica, programación, móviles y más.

cassiani

Así como está debería devolverte todos los campos de la tabla, algo estas haciendo mal

survil

#6
al hacer esto:

Código (php) [Seleccionar]
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 (php) [Seleccionar]
$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 (php) [Seleccionar]
$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 (php) [Seleccionar]
$nombre=registro["nombre"];
                $email=registro["E-mail"];
                $Telefono=registro["Telefono"];







Dile no a la Religion!
www.liceohugomontiel.ve.tc

cassiani

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,

Agente Naranja

Reemplaza mysql_db_query por mysql_query. Según la página oficial de PHP, esta función está obsoleta:

Citar5.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 (php) [Seleccionar]
$mysql_query = "SELECT * FROM tabla WHERE Nombre LIKE '%andres%'";

$mysql_query_resource = mysql_query($query);

while($row = mysql_fetch_assoc($mysql_query_resource) ){
  echo $row['nombre'];
  echo $row['telefono'];
  //Etc...
}

dark_sargon

: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.
http://www.actimediaonline.com
Diseño Web, animación y más.

http://www.ciudadoscura.com
Diseño Web, electrónica, programación, móviles y más.