elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Bases de Datos (Moderador: Carloswaldo)
| | | |-+  ayuda sentencia SQL
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ayuda sentencia SQL  (Leído 2,410 veces)
soru13

Desconectado Desconectado

Mensajes: 246



Ver Perfil
ayuda sentencia SQL
« en: 16 Junio 2012, 17:06 »

hola,estoy realizando un buscador para mi página, y tengo un problema al realizar la consulta, es la siguiente:

Código
  1. $resultados = mysql_query("SELECT * FROM anuncios WHERE
  2. edad BETWEEN '".$edad1."' AND '".$edad2."'
  3. AND tarifa1 <= '".$tarifa1."'
  4. AND (tarifa4 >= '".$tarifa2."'
  5. OR tarifa3 >= '".$tarifa2."'
  6. OR tarifa2 >= '".$tarifa2."')
  7. AND clientes = '".$realizado."'
  8. AND sexo = '".$sexoanuncio."'
  9. AND provincia = '".$ciudad."'
  10. ");

el caso es que tengo un campo en la tabla que se llama "masajes", entonces al crear el anuncio crea una cadena que lo inserta en este campo en plan "masaje1masaje2masaje3". Lo que yo hice fue

Código
  1. $resultados = mysql_query("SELECT * FROM anuncios WHERE
  2. edad BETWEEN '".$edad1."' AND '".$edad2."'
  3. AND tarifa1 <= '".$tarifa1."'
  4. AND (tarifa4 >= '".$tarifa2."'
  5. OR tarifa3 >= '".$tarifa2."'
  6. OR tarifa2 >= '".$tarifa2."')
  7. AND clientes = '".$realizado."'
  8. AND sexo = '".$sexoanuncio."'
  9. AND provincia = '".$ciudad."'
  10.                AND masajes LIKE '%".$masaje[1]."%'
  11.                AND masajes LIKE '%".$masaje[2]."%'
  12.                AND masajes LIKE '%".$masaje[3]."%'
  13.                AND masajes LIKE '%".$masaje[4]."%'
  14.                AND masajes LIKE '%".$masaje[5]."%'
  15.                AND masajes LIKE '%".$masaje[6]."%'
  16.                AND masajes LIKE '%".$masaje[7]."%'
  17. ");

Pero el problema es que me muestra cualquier consulta que tenga el contenido del "masaje[1]", o del "masaje[2]", y así sucesivamente. Y lo que necesito es que me saque la consulta de la cual el campo "masajes" tenga el contenido de "masaje[1]" y "masaje[2]" por ejemplo.

¿Cómo podría hacerlo? Se me han acbado las ideas.

Gracias y un saludo


En línea

GuzmanG

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: ayuda sentencia SQL
« Respuesta #1 en: 16 Junio 2012, 18:23 »

Buenas como andas?

A ver si estoy entendiendo bien...
Vos tenes un campo en la base "masajes" que adentro tiene una concatenación de masajes, y despues queres encontrar las tuplas que cumplen con ciertos masajes (todos los que le pases a la vez)?

Los nombres de los masajes son totalmente diferentes o un nombre puede estar dentro de otro? Es decir existen nombres de masajes que sean "AB" y otro "ABBBBB"?
En ese caso si estas buscando a los %AB% y no a los %ABBBBB% te puede dar resultados que no estas esperando.
Si esto no puede pasar, es raro que no te funcione la consulta que pusiste.


Cualquier cosa avisa o pone algun ejemplo de que tipo de datos son los masajes a ver si sale.
Saludos,

 


En línea

soru13

Desconectado Desconectado

Mensajes: 246



Ver Perfil
Re: ayuda sentencia SQL
« Respuesta #2 en: 16 Junio 2012, 18:29 »

hola, como bien dices en el campo de la tabla se encuentra una concatenación de masajes, por ejemplo:

"chinomanospies"

pero el orden puede variar dependiendo del anuncio,por ejemplo:

"manoschinopies"

y necesito hacer la consulta para que me muestre el anuncio cuando dentro del campo aparezca una cadena igual a la que busco, es decir:

Código:
masajes LIKE '%manos%'

pero que a la vez también sea "chino" y "pies", y ya si no tiene esa concatenación, pues me muestre el anuncio si contiene alguna de esas.

¿Me entiendes?

En línea

GuzmanG

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: ayuda sentencia SQL
« Respuesta #3 en: 16 Junio 2012, 18:50 »

Que raro entonces.

Si existieran los datos:
ACU
ACB

La consulta:

select *
from anuncios
where masajes like '%A%'
and masajes like '%B%'

Debería devolverte unicamente ACB, por lo que tu consulta a mi entender estaría bien. Probaste sacar la consulta del código PHP y ejecutarla directo en el manejador? Intenta acortarla, proba primero con consultas similar a la que puse, solo filtrando por el campo "mensajes" y ves si te esta devolviendo lo esperado. Luego anda agregandole los otros filtros a ver que pasa.

En línea

soru13

Desconectado Desconectado

Mensajes: 246



Ver Perfil
Re: ayuda sentencia SQL
« Respuesta #4 en: 16 Junio 2012, 19:07 »

vale,creo que ya se como es, gracias por la ayuda!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
ayuda con sentencia sql
Programación Visual Basic
CARRY-ON 4 1,215 Último mensaje 6 Octubre 2007, 19:31
por CARRY-ON
Ayuda con sentencia sql « 1 2 3 »
Bases de Datos
50l3r 24 12,722 Último mensaje 26 Marzo 2010, 20:13
por ssccaann43 ©
Ayuda con sentencia sql!!
Bases de Datos
Hartigan 4 2,204 Último mensaje 28 Julio 2010, 16:52
por ssccaann43 ©
Ayuda con sentencia bastante dificil
Bases de Datos
50l3r 6 3,434 Último mensaje 30 Diciembre 2010, 14:20
por JuanRaGD
Sentencia SQL
Bases de Datos
TheGhost(Z) 2 1,979 Último mensaje 6 Marzo 2011, 17:35
por raul338
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines