Foros del Web » Programando para Internet » PHP »

buscador php

Estas en el tema de buscador php en el foro de PHP en Foros del Web. Hola a todos, Intento sacar de un base de datos mysql resultados enviando 3 variables distintas desde un formulario, es decir que extraiga el resultado ...
  #1 (permalink)  
Antiguo 08/12/2002, 17:31
 
Fecha de Ingreso: diciembre-2002
Mensajes: 19
Antigüedad: 15 años
Puntos: 0
buscador php

Hola a todos,

Intento sacar de un base de datos mysql resultados enviando 3 variables distintas desde un formulario, es decir que extraiga el resultado en que coincidan las 3 variables.

Consigo extraer una variable mediante,

$result=mysql_query("select campo from tabla where campo like '%$a%'")

donde $a es un campo de formulario

¿Como debería hacer para recoger $b y $c? de campos distintos?

Muchas gracias por adelantado.

Salu2
  #2 (permalink)  
Antiguo 08/12/2002, 18:28
Avatar de Mickel  
Fecha de Ingreso: mayo-2002
Ubicación: Lima, Peru
Mensajes: 4.619
Antigüedad: 15 años, 6 meses
Puntos: 7
Esto NO es una pregunta de PHP. Lo que necesitas saber es una cuestion de sintaxis SQL standard.

Todos los dialectos SQL aceptan

SELECT (campos)
FROM (tabla)
WHERE (condicion)

si necesitas una condicion donde un campo sea igual a la variable a, otro a la variable b y asi, entonces
SELECT (campos)
FROM (tabla)
WHERE (campo1)=(var a) AND (campo2)=(var b)....

si no quieres igualdad si no solamente cercania
SELECT (campos)
FROM (tabla)
WHERE (campo1) like (var a)% AND (campo2) like(var b)%....

que creo te da lo que buscas. Y esto es tanto si estas en PHP como en ASP o en ACCESS o en VBasic o en PBuilder o Delphi...
  #3 (permalink)  
Antiguo 09/12/2002, 03:47
 
Fecha de Ingreso: diciembre-2002
Mensajes: 19
Antigüedad: 15 años
Puntos: 0
Gracias por tu respuesta. Si los moderadores consideran oportuno mover este post a otra sección pues lo entenderé. Yo pregunté en esta sección porque estoy trabajando en php y como soy novato pensé que podría ser distinto.

Bien, siguiendo tus instrucciones en donde los 3 campos deben ser iguales no consigo hacerlo funcionar en condiciones, me explico,

cuando pongo campo1 = $a & campo2 = $b & campo3 = $c al extraer resultados yo quiero que me salga un registro que contenga esos 3 valores y no uno de ellos, es decir que si campo1=$a & campo2=$b pero campo3 es distinto de $c no extraiga ningún resultado, sin embargo si me lo extrae ya que el campo 1 coincide. no se si me explico.

Salu2
  #4 (permalink)  
Antiguo 09/12/2002, 08:26
Avatar de Webstudio
Colaborador
 
Fecha de Ingreso: noviembre-2001
Ubicación: 127.0.0.1
Mensajes: 3.499
Antigüedad: 16 años
Puntos: 68
Bueno, realmente te recomendaría que revises algún manual de SQL, aunque sea uno básico, ya que te va a responder muchas de las dudas que estás planteando...

El query que necesitás sería algo asi :

suponiendo que las variables que estás mandando se encuentran dentro de $a, $b y $c, habría que hacer

SELECT campos FROM tu_tabla WHERE campo LIKE '%$a%' AND campo LIKE '%$b%' AND campo LIKE '%$c%'

Saludos.
__________________
Tutoriales Photoshop | Web-Studio.com.ar
Artículos PHP | ZonaPHP.com
  #5 (permalink)  
Antiguo 09/12/2002, 08:31
 
Fecha de Ingreso: diciembre-2002
Mensajes: 19
Antigüedad: 15 años
Puntos: 0
Tendré que mirarme lo del manual :p

Una última cosa antes de probarlo, daría igual que las variables a, b o c sean númericas o alfanuméricas?
  #6 (permalink)  
Antiguo 09/12/2002, 09:01
Avatar de Webstudio
Colaborador
 
Fecha de Ingreso: noviembre-2001
Ubicación: 127.0.0.1
Mensajes: 3.499
Antigüedad: 16 años
Puntos: 68
así es, porque el criterio del Like está entre comillas simples.

Saludos.
__________________
Tutoriales Photoshop | Web-Studio.com.ar
Artículos PHP | ZonaPHP.com
  #7 (permalink)  
Antiguo 09/12/2002, 09:05
 
Fecha de Ingreso: diciembre-2002
Mensajes: 19
Antigüedad: 15 años
Puntos: 0
Muchísimas gracias ya me funciona correctamente.

Un salu2 sois geniales
  #8 (permalink)  
Antiguo 09/12/2002, 13:17
 
Fecha de Ingreso: diciembre-2002
Mensajes: 19
Antigüedad: 15 años
Puntos: 0
Pues me acabo de dar cuenta que todavía hay un fallo y es que solo me extrae un registro y no todos... si uso la sentencia if... else. Sin embargo si uso while si que me extrae todos los registros.

el if..else es para escribir en pantalla NO HAY REGISTROS.

Gracias
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




La zona horaria es GMT -6. Ahora son las 01:42.