Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Consulta variables dependientes en una tabla

Estas en el tema de Consulta variables dependientes en una tabla en el foro de Mysql en Foros del Web. Hola maestros, tengo un formulario desde donde envío 3 variables a una consulta, a su vez las variables a consultar están en la misma tabla ...
  #1 (permalink)  
Antiguo 23/04/2012, 10:04
Avatar de vcarr  
Fecha de Ingreso: marzo-2011
Mensajes: 29
Antigüedad: 13 años, 1 mes
Puntos: 1
Exclamación Consulta variables dependientes en una tabla

Hola maestros, tengo un formulario desde donde envío 3 variables a una consulta, a su vez las variables a consultar están en la misma tabla y estas dependen de un modo u otro entre sí...

Es decir:

Quiero buscar por ciudad 'variable x0' todas las "peliculas, videojuegos... (otras opciones)...'variable x1', que estén en 'venta o en alquiler'... 'variable x2'

¿Alguna idea para hacer la consulta?

Gracias a todos de antemano

  #2 (permalink)  
Antiguo 23/04/2012, 14:54
Avatar de vcarr  
Fecha de Ingreso: marzo-2011
Mensajes: 29
Antigüedad: 13 años, 1 mes
Puntos: 1
Respuesta: Consulta variables dependientes en una tabla

Sigo buscando una solución, a alguien se le ocurre la fórmula que podría usar ¿?, he probado de todos modos y nada...

gracias
  #3 (permalink)  
Antiguo 23/04/2012, 15:09
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Consulta variables dependientes en una tabla

Hola vcarr:

Vayamos por partes:

1. ¿Cómo tienes almacenada tu información? ¿en una sola tabla o en varias tablas?

2. dices que haz probado de todos los modos, pero no veo en ningún lado que hayas incluido algo del código que haz tratado de hacer. Independientemente de que no hayas dado con la solución es conveniente que nos digas qué haz intentado hacer, si la consulta te marca algún error entonces incluye el código de error. Si no obtienes el resultado esperado, entonces dinos qué es lo que estás obteniendo y qué es lo que deberías obtener.

Saludos
Leo.
  #4 (permalink)  
Antiguo 23/04/2012, 16:23
Avatar de vcarr  
Fecha de Ingreso: marzo-2011
Mensajes: 29
Antigüedad: 13 años, 1 mes
Puntos: 1
Respuesta: Consulta variables dependientes en una tabla

Hola Leo, tienes razón disculpa, debería haber puesto el código y explicarlo mejor:

El tema es que tengo un formulario donde envío las variables que he comentado, los datos están almacenados en una sola tabla la 'tabla1' como 'ciudad', 'tipo' (videojuegos, peliculas, etc...) y otra variable 'pop' (venta, alquiler..)


El problema es que los resultados no aparece como debería, he probado con varias opciones de consulta y ninguna resulta.

El resultado que quiero que aparezca es que cuando un usuario busque por formulario un videojuego en barcelona que esté a la venta se devuelva un resultado con todos los videojuegos a la venta en Barcelona y que los ordenen por fecha (de los más nuevos a los más viejos...) y hasta ahora no he conseguido este resultado, en algunos aparecen los de la ciudad, pero también los que están a la venta "en otras ciudades" y también los que están a la venta y son películas, así que mezcla todos los resultados entre sí... no se si me explico..





$pop=utf8_decode($_POST['pop']);
$ciudad=utf8_decode($_POST['ciudad']);
$tipo=utf8_decode($_POST['tipo']);


$query="SELECT tabla1.pop, tabla1.tipo, tabla1.ciudad, fotos.prin, tabla1.fechaalta
FROM tabla1, fotos
WHERE tabla1.ciudad='$ciudad'
AND tabla1.para='$pop'
AND tabla1.tipo='$tipo'
ORDER BY fechaalta ASC;

";

No entiendo mucho de mysql, he probado otras cosas, leído mucho pero no doy con la solución, espero que puedas echarme una mano,

Gracias
  #5 (permalink)  
Antiguo 24/04/2012, 07:56
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Consulta variables dependientes en una tabla

Hola vcarr:

En tu consulta no estás definiendo ninguna relación entre tus tablas tabla1 y fotos, por lo tanto se está realizando un PRODUCTO CARTESIANO entre estas dos tablas.

Checa este script:

Código MySQL:
Ver original
  1. mysql> SELECT * FROM tabla1;
  2. +------+-------------+
  3. | id   | descripcion |
  4. +------+-------------+
  5. |    1 | uno         |
  6. |    2 | dos         |
  7. |    3 | tres        |
  8. +------+-------------+
  9. 3 rows in set (0.00 sec)
  10.  
  11. mysql> SELECT * FROM tabla2;
  12. +------+-------------+
  13. | id   | descripcion |
  14. +------+-------------+
  15. |    1 | one         |
  16. |    2 | two         |
  17. |    3 | three       |
  18. +------+-------------+
  19. 3 rows in set (0.02 sec)
  20.  
  21. mysql> SELECT * FROM tabla1, tabla2;
  22. +------+-------------+------+-------------+
  23. | id   | descripcion | id   | descripcion |
  24. +------+-------------+------+-------------+
  25. |    1 | uno         |    1 | one         |
  26. |    2 | dos         |    1 | one         |
  27. |    3 | tres        |    1 | one         |
  28. |    1 | uno         |    2 | two         |
  29. |    2 | dos         |    2 | two         |
  30. |    3 | tres        |    2 | two         |
  31. |    1 | uno         |    3 | three       |
  32. |    2 | dos         |    3 | three       |
  33. |    3 | tres        |    3 | three       |
  34. +------+-------------+------+-------------+
  35. 9 rows in set (0.00 sec)
  36.  
  37. mysql> SELECT * FROM tabla1 INNER JOIN tabla2 ON tabla1.id = tabla2.id;
  38. +------+-------------+------+-------------+
  39. | id   | descripcion | id   | descripcion |
  40. +------+-------------+------+-------------+
  41. |    1 | uno         |    1 | one         |
  42. |    2 | dos         |    2 | two         |
  43. |    3 | tres        |    3 | three       |
  44. +------+-------------+------+-------------+
  45. 3 rows in set (0.00 sec)
  46.  
  47. mysql> SELECT * FROM tabla1, tabla2 WHERE tabla1.id = tabla2.id;
  48. +------+-------------+------+-------------+
  49. | id   | descripcion | id   | descripcion |
  50. +------+-------------+------+-------------+
  51. |    1 | uno         |    1 | one         |
  52. |    2 | dos         |    2 | two         |
  53. |    3 | tres        |    3 | three       |
  54. +------+-------------+------+-------------+
  55. 3 rows in set (0.00 sec)

En la tercer consulta se observa lo que es un producto cartesiano, al no definir una relación entre las tablas 1 y 2, CADA ELEMENTO DE LA TABLA1 SE RELACIONA CON TODOS Y CADA UNO DE LOS ELEMENTOS DE LA TABLA2, esto mismo esta sucediendo en tu consulta. En el script se muestran dos formas de relacionar tablas, la primera y que es la que recomiendo es utilizando JOIN's (si no sabes cómo funcionan los tipos de join's pregúntale a Santa Wikipedia.

Saludos
Leo.
  #6 (permalink)  
Antiguo 25/04/2012, 10:28
Avatar de vcarr  
Fecha de Ingreso: marzo-2011
Mensajes: 29
Antigüedad: 13 años, 1 mes
Puntos: 1
Respuesta: Consulta variables dependientes en una tabla

Gracias Leo por tu respuesta, todo solucionado utilizando INNER JOIN como dices, ahora funciona perfecto.


Gracias

Etiquetas: dependientes, tabla, variables
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 16:32.