Foros del Web » Programando para Internet » PHP »

(Solucionado)Problemas en consulta multiples tablas

Estas en el tema de (Solucionado)Problemas en consulta multiples tablas en el foro de PHP en Foros del Web. Saludos a todos. Soy un novato y autodidacta así que espero no molestar mucho con esta pregunta. Estoy montando una tienda de vinos y tengo ...
  #1 (permalink)  
Antiguo 21/04/2009, 10:20
Avatar de lone  
Fecha de Ingreso: abril-2009
Ubicación: Valencia
Mensajes: 8
Antigüedad: 15 años
Puntos: 0
De acuerdo (Solucionado)Problemas en consulta multiples tablas

Saludos a todos.

Soy un novato y autodidacta así que espero no molestar mucho con esta pregunta. Estoy montando una tienda de vinos y tengo las bodegas (los fabricantes), asociadas a las D.O. (categorias de fabricantes), así mismo tengo los vinos (productos) asociados con sus tipos (categorias: tintos, blancos...). Estoy utilizando mysql junto con el joomla (cms en php) y virtuemart (una tienda virtual integrada en joomla). Se que la sintaxis de mysql varia un poco, respecto a la que utiliza el cms, pero el problema lo tengo en la base de conocimientos no en la adaptación entre los dos programas (o eso espero). He buscado por el foro en relación a consultas entre multiples tablas, pero no consigo hacer las consultas correctamente.

Tabla do (manufacturer_category)
do_id
do_nombre

Tabla bodegas (manufacturer)
bodegas_id
bodegas_nombre
do_id

Tabla producto (product)
producto_id
producto_nombre

Tabla producto_fabricante (product_mx_xref)
producto_id
bodega_id

Mi pregunta es la siguiente ¿Existe alguna manera de que la consulta muestre las do de los fabricantes y al seleccionar una do muestre los productos enlazados a la bodega? Si es así ¿podriais indicarme como? Os adjunto la parte del código que estoy intentando modificar

$category_id = vmRequest::getInt('category_id');
$text_before = $params->get( 'text_before', '');
$show_dropdown = $params->get( 'show_dropdown', 1);
$show_linklist = $params->get( 'show_linklist', 1);
$auto = $params->get( 'auto', 0);

$sess = new ps_session;


$query = "SELECT DISTINCT m.manufacturer_id, m.mf_name, m.mf_category_id
FROM #__{vm}_manufacturer m
LEFT JOIN #__{vm}_product_mf_xref mx ON mx.manufacturer_id = m.manufacturer_id
LEFT JOIN #__{vm}_manufacturer_category_id f ON f.mf_category_id = m.mf_category_id
LEFT JOIN #__{vm}_product p ON p.product_id = mx.product_id
LEFT JOIN #__{vm}_product_category_xref cx ON cx.product_id = p.product_id
WHERE cx.category_id =".(int)$category_id;
$query .= " ORDER BY f.mf_category_name ASC";

$query_all = "SELECT f.mf_category_id,f.mf_category_name FROM #__{vm}_manufacturer_category f ";
$query_all .= "ORDER BY f.mf_category_name ASC";

$db = new ps_DB;
if ($auto == 1 && !empty( $mf_category_id ) ) {
$db->query( $query );
} else {
$db->query( $query_all );
}
$res = $db->record;
if( empty( $res )) {
if( $auto == 1 ) {
$db->query( $query_all );
$res = $db->record;
} else {
echo 'No manufacturers defined!';
return;
}

Os agradezco de antemano vuestra ayuda. Saludos

Última edición por lone; 21/04/2009 a las 11:13 Razón: Solucionado
  #2 (permalink)  
Antiguo 21/04/2009, 11:13
Avatar de lone  
Fecha de Ingreso: abril-2009
Ubicación: Valencia
Mensajes: 8
Antigüedad: 15 años
Puntos: 0
Respuesta: Problemas en consulta multiples tablas

Problema solucionado. Aquien le pueda interesar el codigo queda como sigue:

$query = "SELECT DISTINCT m.manufacturer_id, m.mf_name, m.mf_category_id
FROM #__{vm}_manufacturer m
LEFT JOIN #__{vm}_product_mf_xref mx ON mx.manufacturer_id = m.manufacturer_id
LEFT JOIN #__{vm}_manufacturer_category_id f ON f.mf_category_id = m.mf_category_id
LEFT JOIN #__{vm}_product p ON p.product_id = mx.product_id
LEFT JOIN #__{vm}_product_category_xref cx ON cx.product_id = p.product_id
WHERE cx.category_id =".(int)$category_id;
$query .= " ORDER BY f.mf_category_name ASC";

$query_all = "SELECT f.mf_category_id,f.mf_category_name FROM #__{vm}_manufacturer_category f ";
$query_all .= "ORDER BY f.mf_category_name ASC";

$db = new ps_DB;
if ($auto == 1 && !empty( $mf_category_id ) ) {
$db->query( $query );
} else {
$db->query( $query_all );
}
$res = $db->record;
if( empty( $res )) {
if( $auto == 1 ) {
$db->query( $query_all );
$res = $db->record;
} else {
echo 'No manufacturers defined!';
return;
}
  #3 (permalink)  
Antiguo 21/04/2009, 14:10
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: (Solucionado)Problemas en consulta multiples tablas

Tema trasladado desde MySQL

http://www.forosdelweb.com/f21/funci...-datos-413499/
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 13:09.