Buen día
Me pudieran ayudar al poner los valores de la relación de tablas en una tabla html.
controller
public function actionGral() {
date_default_timezone_set('America/Mexico_City');
$hoy = date("Y-m-d");
$prod = Yii::app()->db->createCommand("SELECT DISTINCT producto FROM productos WHERE visible='si'")->queryAll();
$subprod = Yii::app()->db->createCommand("SELECT subproducto FROM productos WHERE visible='si'")->queryAll();
$canSubProd = count($subprod);
$pedidos = Yii::app()->db->createCommand("SELECT * FROM pedidos WHERE tipo_ped='General' AND fecha='$hoy' ORDER BY clien_id, prod_id ASC")->queryAll();
$canPedidos = count($pedidos);
$this->render('gral', array(
'prod'=>$prod,
'subprod'=>$subprod,
'canSubProd'=>$canSubProd,
'pedidos'=>$pedidos,
'canPedidos'=>$canPedidos,
));
}
Modelo
public function relations()
{
// NOTE: you may need to adjust the relation name and the related
// class name for the relations automatically generated below.
return array(
'clien' => array(self::BELONGS_TO, 'Clientes', 'clien_id'),
'prod' => array(self::BELONGS_TO, 'Productos', 'prod_id'),
);
}
y la vista
echo "<div class='encabezado'>";
echo "<table border=1>";
echo '<tr>';
echo '<td rowspan=3>';
echo 'Clientes';
echo '</td>';
//imprimir encabezado de productos
foreach($prod as $row1) {
if ($row1['producto']=='Piña') {
echo "<td colspan=6>".$row1['producto']."</td>";
} else {
echo "<td colspan=4>".$row1['producto']."</td>";
}
}
echo '</tr>';
//imprimir encabezado de sub-productos
echo '<tr>';
foreach ($subprod as $row2) {
echo '<td colspan=2>'.$row2['subproducto'].'</td>';
}
echo '</tr>';
//imprimir encabezado de kilos y cajas
echo '<tr>';
for ($x=0;$x<$canSubProd;$x++) {
echo '<td>kg</td><td>cajas</td>';
}
echo '</tr>';
//con este for imprimimos los clientes
for ($i=0;$i<$canPedidos;$i++) {
//impresión de clientes
//si es el primer valor (0), siempre se imprime
if ($i==0) {
//inicializamos j para imprimir kg y cajas
$j=1;
echo '<tr><td>'.$pedidos[$i]['clien_id'].'</td>';
} else {
//comparamos el valor del 1er cliente
//para no imprimir clientes repetidos
//si el cliente es diferente al renglon anterior
//se imprime
if ($pedidos[$i-1]['clien_id'] != $pedidos[$i]['clien_id']) {
echo '<tr><td>'.$pedidos[$i]['clien_id'].'</td>';
//inicializamos j para imprimir kg y cajas
//si el cliente es diferente al anterior
$j=1;
} else {
//si el cliente ya existia,
//aumentamos el valor de j para que continue
//la impresión de datos después del último
//producto mostrado.
$j = $j+1;
}
}
//con este imprimimos los productos
while ($j<=$canSubProd) {
//comparamos si el valor del campo de la bbdd esta vacío,
//de lo contrario lo imprimimos
if ($j == $pedidos[$i]['prod_id']) {
//mostramos el valor en pantalla
echo '<td>'.$pedidos[$i]['kilos'].'</td><td>'.$pedidos[$i]['cajas'].'</td>';
//si j llego a la última columna
//inicializamos en 1
if ($j==$canSubProd) {
$j=1;
}
break;
} else {
echo '<td></td><td></td>';
$j++;
}
}
}
echo '</tr>';
echo '</table>';
echo '</div>';
En la img muestro donde se deben de mostrar el valor en vez de el id guardado
Gracias por la ayuda.