Foros del Web » Programando para Internet » PHP »

Desplegar datos de querys que incluyen join de varias tablas

Estas en el tema de Desplegar datos de querys que incluyen join de varias tablas en el foro de PHP en Foros del Web. Buenos días: Estoy teniendo problemas a la hora de desplegar datos de varias tablas las cuales relaciono con el comando JOIN. Cuando escribo el comando ...
  #1 (permalink)  
Antiguo 07/10/2009, 08:07
 
Fecha de Ingreso: octubre-2009
Mensajes: 3
Antigüedad: 14 años, 6 meses
Puntos: 0
Desplegar datos de querys que incluyen join de varias tablas

Buenos días:

Estoy teniendo problemas a la hora de desplegar datos de varias tablas las cuales relaciono con el comando JOIN.

Cuando escribo el comando en la consola de MySql, todo funciona perfecto, sin embargo a la hora de verlo en una página, no se muestran los datos correctamente.

Adicional, dos de las tablas tienen nombres de campos iguales.

¿Cómo puedo hacer para especificar los campos después del $query_?

Este es el query que deseo realizar:

$query_ = "SELECT pro_cal_reganomalias.documento,
pro_cal_reganomalias.fecha,
pro_cal_reganomalias.cod_producto,
vta_productos.desc_p,
vta_productos.tamano,
pro_cal_anomalias.nombre,
pro_cal_accionxanomalias.nombre
FROM pro_cal_reganomalias
LEFT JOIN vta_productos ON
pro_cal_reganomalias.cod_producto = vta_productos.codigo
LEFT JOIN pro_cal_anomalias ON
pro_cal_reganomalias.cod_anomalia = pro_cal_anomalias.id
LEFT JOIN pro_cal_accionxanomalias ON
pro_cal_reganomalias.cod_accion_tomada =
pro_cal_accionxanomalias.id";

-----
-----
-----
$result_ = mysql_query($query_) or die(mysql_error());
------
------
------
<table border="0" width="100%">
<tr style="background-color: GRAY; color:WHITE">
<td>FECHA</td>
<td>DOCUMENTO</td>
<td>CODIGO</td>
<td>DESCRIPCION</td>
<td>TAMA&Ntilde;O</td>
<td>ANOMALIA</td>
<td>ACCION TOMADA</td>
</tr>
<?

while($data_ = mysql_fetch_array($result_) )
{
?>
<tr>
<td>
<label style="color:BLUE; text-align:center; font-size: 10pt;">
<a href="/avipac/sistema/produccion/ctrl.calidad
/rganomaliaxprod.php?documento=<?php echo
$data_['documento']?>&accion=mod">
<?php echo $data_['fecha']?>
</td>

<td>
<label style="color:BLUE; text-align:center; font-size: 10pt;">
<a href="/avipac/sistema/produccion/ctrl.calidad
/rganomaliaxprod.php?documento=<?php echo
$data_['documento']?>&accion=mod">
<?php echo $data_['documento']?>
</td>

<td>
<label style="color:BLUE; text-align:center; font-size: 10pt;">
<a href="/avipac/sistema/produccion/ctrl.calidad
/rganomaliaxprod.php?documento=<?php echo
$data_['documento']?>&accion=mod">
<?php echo $data_['cod_producto']?>
</td>

<td>
<label style="color:BLUE; text-align:center; font-size: 10pt;">
<a href="/avipac/sistema/produccion/ctrl.calidad
/rganomaliaxprod.php?documento=<?php echo
$data_['documento']?>&accion=mod">
<?php echo $data_['desc_p']?>
</td>

<td>
<label style="color:BLUE; text-align:center; font-size: 10pt;">
<a href="/avipac/sistema/produccion/ctrl.calidad
/rganomaliaxprod.php?documento=<?php echo
$data_['documento']?>&accion=mod">
<?php $data_['tamano']?>
</td>

<td>
<label style="color:BLUE; text-align:center; font-size: 10pt;">
<a href="/avipac/sistema/produccion/ctrl.calidad
/rganomaliaxprod.php?documento=<?php echo
$data_['documento']?>&accion=mod">
<?php echo $data_['nombre']?>
</td>

<td>
<label style="color:BLUE; text-align:center; font-size: 10pt;">
<a href="/avipac/sistema/produccion/ctrl.calidad
/rganomaliaxprod.php?documento=<?php echo
$data_['documento']?>&accion=mod">
<?php echo $data_['nombre']?>
</td>
</tr>
<?
}
?>
</table>

Al desplegarse la tabla en HTML, no salen valores para las columnas TAMANO, y en las columnas ANOMALIAS, y ACCION TOMADA, se repite el valor de ACCION TOMADA (Entiendo que los campos de nombre son idénticos en ambas tablas, pero no se como especificarlas en el arreglo $data_).

Este mismo $query_ en la consola de MySQL, funciona excelente.
  #2 (permalink)  
Antiguo 07/10/2009, 08:33
Avatar de Avatar810  
Fecha de Ingreso: agosto-2007
Ubicación: Por rumbos Regios
Mensajes: 485
Antigüedad: 16 años, 8 meses
Puntos: 23
Respuesta: Desplegar datos de querys que incluyen join de varias tablas

Bueno creo que ya encontraste el error sin necesidad de ayuda del foro, en si tu problema es que 2 o mas campos se llaman iguales, en estos casos debes asignarle un alias a cada uno de los campos (duplicados) para que todos sean unicos... esto se hace con AS
Aqui te pongo una sugerencia

$query_ = "SELECT pro_cal_reganomalias.documento AS C1,
pro_cal_reganomalias.fecha AS C2,
pro_cal_reganomalias.cod_producto AS C3,
vta_productos.desc_p AS C4,
vta_productos.tamano AS C5,
pro_cal_anomalias.nombre AS C6,
pro_cal_accionxanomalias.nombre AS C7
FROM pro_cal_reganomalias
LEFT JOIN vta_productos ON
pro_cal_reganomalias.cod_producto = vta_productos.codigo
LEFT JOIN pro_cal_anomalias ON
pro_cal_reganomalias.cod_anomalia = pro_cal_anomalias.id
LEFT JOIN pro_cal_accionxanomalias ON
pro_cal_reganomalias.cod_accion_tomada =
pro_cal_accionxanomalias.id";

Y cuando haces referencia a los campos desde la aplicacion debes hacer referencia a los alias (o a los nombres del campo si no colocaste alias) pero siempre tomando en cuenta que sean UNICOS

Saludos
__________________
Una demo siempre funcionará correctamente hasta que toque algo tu (hasta ahora) cliente.
Avatar810
  #3 (permalink)  
Antiguo 07/10/2009, 10:09
 
Fecha de Ingreso: octubre-2009
Mensajes: 3
Antigüedad: 14 años, 6 meses
Puntos: 0
Gracias....
Sin embargo, no me permite imprimir el campo TAMANO de la tabla vta_productos
Le cree un alias, pero aun asi no sale.
En el código que está arriba, corresponde a C5

Gracias si pudieran aclarar....

Ya disculpa... econtré el problema de la impresión de TAMANO....
no tenía echo

Gracias 1000!!!!

Última edición por GatorV; 07/10/2009 a las 12:36
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 10:32.