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
:o lo siento.. este post no debería ir acá... ando como elevado.
Disculpen... aun así quien quiera ayudarme, respondame porfavor.
Gracias
usas el operador "Like" en tu consulta.
SELECT * FROM tabla WHERE Nombre LIKE '%andres%'
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
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
Así como está debería devolverte todos los campos de la tabla, algo estas haciendo mal
al hacer esto:
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
$consulta= mysql_db_query("nombre_BD","SELECT * FROM tabla WHERE Nombre LIKE %andres%")
seleccionas el primer registro que tienes en la variable $consulta
$registro=mysql_fetch_array($consulta)
y por ultimo accedes por medio de un array asociativo a cada uno de los campos de el registro.
$nombre=registro["nombre"];
$email=registro["E-mail"];
$Telefono=registro["Telefono"];
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,
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.
$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...
}
: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.