Foros del Web » Programando para Internet » PHP »

Duda sobre buscador en PHP y MySQL

Estas en el tema de Duda sobre buscador en PHP y MySQL en el foro de PHP en Foros del Web. A ver si me pueden orientar un poco con esta duda sobre un buscador en PHP y MySQL. Tengo una tabla donde debo realizar una ...
  #1 (permalink)  
Antiguo 04/09/2010, 22:06
 
Fecha de Ingreso: diciembre-2003
Mensajes: 1.583
Antigüedad: 15 años, 10 meses
Puntos: 13
Duda sobre buscador en PHP y MySQL

A ver si me pueden orientar un poco con esta duda sobre un buscador en PHP y MySQL.

Tengo una tabla donde debo realizar una búsqueda en los campos "nombres" y "apellidos". Entonces, si quiero buscar la cadena "Carlos Pérez" necesito seguir los siguientes criterios dentro de la misma sentencia SQL:

1) Encontrar los registros en los cuales el campo "nombres" tenga la subcadena "Carlos" y el campo "apellidos" tenga la subcadena "Pérez"

2) Encontrar los registros en los cuales el campo "nombres" tenga la subcadena "Carlos"

3) Encontrar los registros en lo cuales el campo "apellidos" tenga la subcadena "Pérez".

¿Es posible incluir esos 3 criterios en la misma query?
__________________
El conocimiento es libre: Movimiento por la Devolución
  #2 (permalink)  
Antiguo 04/09/2010, 22:16
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 9 años, 6 meses
Puntos: 460
Respuesta: Duda sobre buscador en PHP y MySQL

bueno no entendi bien cual es el problema pero creo que puedes solucionarlo con la condicion like de mysql espero te sirva suerte
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #3 (permalink)  
Antiguo 05/09/2010, 02:14
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 10 años, 6 meses
Puntos: 322
Respuesta: Duda sobre buscador en PHP y MySQL

Suponiendo que los campos de tu buscador son NOMBRE y APELLIDO, tu codigo seria este:

Código PHP:
$nombre $_POST['nombre'];
$apellido $_POST['apellido'];

$query mysql_query("SELECT * FROM tutabla WHERE nombre = '$nombre' and apellido = '$apellido'"); 
Y ya despues, muestras todos los datos con mysql_fetch_assoc y eso, supongo que sabes utilizarlo.

Saludos!
  #4 (permalink)  
Antiguo 05/09/2010, 03:35
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 10 años, 3 meses
Puntos: 150
Respuesta: Duda sobre buscador en PHP y MySQL

Te pongo la sentencia y al final te explico:

Código PHP:
$nombre $_POST['nombre'];
$apellido $_POST['apellido'];

$query mysql_query("SELECT * FROM tutabla WHERE INSTR(NOMBRE, '$nombre')>0 or INSTR(APELLIDO, '$apellido')>0 order by INSTR(NOMBRE, '$nombre')*INSTR(APELLIDO, '$apellido') DESC"); 

La funcion INSTR() devuelve el numero de posicion del segundo parametro dentro del primer parametro, de modo que nos va a devolver los registros donde encuentre $nombre en el campo NOMBRE o $apellido en el campo APELLIDO. Pero luego además como la funcion INSTR() nos devuelve un numero de 0 para arriba, hemos incluido un ORDER BY que multiplica los dos valores de modo que van a salir primero aquellos registros donde encuentre ambos campos, porque si los encuentra estara multiplicando dos numeros mayores que cero, pero si en un registro encontramos el nombre pero no el apellido estara multiplicando un valor entero por 0, lo cual es 0. Este order by es bastante mejorable pero no me queria liar jeje
  #5 (permalink)  
Antiguo 05/09/2010, 21:13
 
Fecha de Ingreso: diciembre-2003
Mensajes: 1.583
Antigüedad: 15 años, 10 meses
Puntos: 13
Respuesta: Duda sobre buscador en PHP y MySQL

Gracias Vun, eso se ve interesante. Al final logré construir la query que necesitaba, aunque no considera el orden como lo hace tu código. Veré que tal funciona :D
__________________
El conocimiento es libre: Movimiento por la Devolución
  #6 (permalink)  
Antiguo 05/09/2010, 23:54
Avatar de egepe  
Fecha de Ingreso: diciembre-2009
Mensajes: 310
Antigüedad: 9 años, 11 meses
Puntos: 7
Respuesta: Duda sobre buscador en PHP y MySQL

$var1="carlos"; $var2="perez"; OJO CON EL ACENTO
$str_select ="select * from tu_table where nombre like %$var1% and apellido like %$var2%"
mysql_query($str_select);

Etiquetas: buscadores
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 22:45.