Comunidad de diseño web y desarrollo en internet online

¿¿ Busqueda a doble campo ??

Citar            
MensajeEscrito el 26 Sep 2009 10:00 am
Hola a todos,

soy algo novato en el tema de php y mysql y por ello acudo a vosotros para que ilustreis mi camino, la senda de busqueda en google me conduce a dias y dias de insomnio...En fin.
Mi pregunta es si se puede realizar una consulta a una base de datos con doble campo...(disculpad si no uso el lenguaje más tecnico):
Actualmente uso un formulario con un campo de busqueda (name=NOMBRE) que redireccion a un:


$result = mysql_query("SELECT CODLAC, HISTORIA, APELLIDOS, NOMBRE FROM citologias where NOMBRE='$_REQUEST[NOMBRE]'", $link);


y mi pregunta es si se podria hacer que en el formulario hubieran dos campos de busqueda (ej, nombre y apellidos) y que ambos tuvieran que ser escritos y que tuvieran que coincidir para enseñar el registro con ese nombre, apellidos y demas informacion que haya...

Seria algo asi como como poner un AND en " where NOMBRE='$_REQUEST[NOMBRE]'" "...pero necesito que ambos campos deban coincidir en en registro...

Muchas gracias, cualquier aportación será bienvenida..

Por fiestuvip

12 de clabLevel



 

safari
Citar            
MensajeEscrito el 26 Sep 2009 11:18 am
ya encotre la solucion...
algo sencilla...

$result = mysql_query("SELECT CODLAC, HISTORIA, APELLIDOS, NOMBRE FROM citologias where NOMBRE='$_REQUEST[NOMBRE]' AND APELLIDOS='$_REQUEST[APELLIDOS]'", $link);

A ver si a algun principiante como yo le sirve...

Por fiestuvip

12 de clabLevel



 

safari
Citar            
MensajeEscrito el 26 Sep 2009 06:38 pm
Yo usaría un solo campo de entrada y lo haría así:

Código PHP :

$criterio  = stripslashes($_REQUEST['NOMBRE']);
$result = mysql_query("SELECT CODLAC, HISTORIA, APELLIDOS, NOMBRE FROM citologias where CONCAT_WS(' ', NOMBRE, APELLIDOS) LIKE '%$criterio%'");


saludos

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 27 Sep 2009 03:14 am
maikel y con una tabla de 2 millones de registros cual usaria mas recursos tu opcion o la de fiestuvip :-D

Por talcual

686 de clabLevel



 

Colombia

firefox
Citar            
MensajeEscrito el 27 Sep 2009 03:41 am
@fiestuvip

Bueno maikel te respodio tu dudas pero tambien soy nuevo en esto de php y ese estilo de cosa pero
puede hacer lo siguiente

$nombres = $_POST['nombre'];
$apellidos = $_POST['apellido'];

$resultado=mysql_query("SELECT * FROM usuario WHERE nombre REGEXP '$nombre' AND apellido REGEXP '$apellido' ",$conex)

Puede utilizar LIKE por REGEXP pero este te ayudara a conseguir una busqueda de la palabra que concuerde
con la letras de los nombres de los usuario.

Por scowtmaster

21 de clabLevel



Genero:Masculino  

Rep Dom

firefox
Citar            
MensajeEscrito el 27 Sep 2009 04:05 am

talcual escribió:

maikel y con una tabla de 2 millones de registros cual usaria mas recursos tu opción o la de fiestuvip :-D


La condición en su consulta solo funciona cuando escribes el nombre y apellido tal y como están escritos si le falta un acento o alguna letra, la condición no se cumplirá. Y si ese es el caso para eso yo usaria un select (combobox) o algun otro elemento de formulario. Si lo que quiere es buscar seguiría usando mi forma (LIKE).

Ahora, no me preocupa la cantidad de registros, pues usaría un limit.

saludos

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab



Ultima edición por Maikel el 27 Sep 2009 04:59 pm, editado 1 vez

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 27 Sep 2009 02:19 pm
Gracias a todos por vuestras respuestas.

La verdad es que conocia el codigo de LIKE pero no es lo que necesito. En el fondo los usuarios no escribiran nombre apellidos si no 2 codigos que han de ser escritos sin posibilidad de variacion. De todas maneras probare con los ejemplos que me habeis dado.

Una pregunta mas... De la manera que estoy haciendo se muestran los resultados de la busqueda en una tabla...

¿Es posible mostrar los resultados en una frase?... Es decir... Su nombre es [campo del nombre] sus apellidos son [campo de apellidos]... ya qu de toda la tabla solo se mostrara un campo? Tal vez definiendo la variabla $nombre=NOMBRE .. o algo asi?

Muchas gracias por adelantado a todos!

Por fiestuvip

12 de clabLevel



 

chrome
Citar            
MensajeEscrito el 27 Sep 2009 06:35 pm
ok makiel esta correcto limitar los registros a 1 y liston saludos

Por talcual

686 de clabLevel



 

Colombia

firefox
Citar            
MensajeEscrito el 27 Sep 2009 10:17 pm

fiestuvip escribió:

Una pregunta mas... De la manera que estoy haciendo se muestran los resultados de la busqueda en una tabla...

¿Es posible mostrar los resultados en una frase?... Es decir... Su nombre es [campo del nombre] sus apellidos son [campo de apellidos]... ya qu de toda la tabla solo se mostrara un campo? Tal vez definiendo la variabla $nombre=NOMBRE .. o algo asi?

Muchas gracias por adelantado a todos!


No sabemos como modelaste tu base de datos, ni que es lo que realmente quieres hacer. Si quieres coloca la estructura de la tabla aqui y dinos que quieres hacer para ayudarte mejor.

saludos

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 29 Sep 2009 11:38 am
Bueno, la verdad es que ya conseguí lo que buscaba...

Lo que queria era mostrar los resultados como texto y quitar la tabla. Emplee esto:


while ($row = mysql_fetch_row($result)){



echo "Tu nombre es $row[3] <br /> <br /> <br /> <br /> \n";

echo "Su número de CODLAC es: $row[0] <br /> <br /> <br /> <br /> \n";


De todas maneras muchas gracias.

Ahora lo que busco es modelar un poquito con css este texto... Buscare por foro y nuestro amado google.

Muchas gracias a todos.

Por fiestuvip

12 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.