Tengo esta tabla:
Mes C1 C2 C3 C4 C5
Enero 1 2 3 4 5
...
y asi sucesivamente hasta llegar diciembre
pero quiero generar esa tabla segun los datos de MySQL y por supuesto si no hay nada para ese mes que me ponga un simple "0".
Mi problema es que no logro hacer eso, ahora veamos mi codigo. Antes de continuar uso CodeIgniter como ayuda.
Mi MySQL es el siguiente
Cita:
Uso la misma tabla para almacenar los valores y segun el usuario el mes y año puedo generar la tabla descripta anteriormente por supuesto intento resumir los nombres para no confundir.(`id`, `idusuario`, `ano`, `mes`, `fechapub`, `hhr`, `htra`, `ntra`, `diatra`, `diasacc`, `acccon`, `accsin`, `diaper`, `diacar`, `totalacc`, `inneta`, `inbruta`, `inseve`, `activo`)
Y no lo logro!! Intento pensar un y mil maneras lo ultimo a que llegue fue a esto:
Esto es la Vista:
Código PHP:
$meses = array (
1 => 'Enero',
2 => 'Febrero',
3 => 'Marzo',
4 => 'Abril',
5 => 'Mayo',
6 => 'Junio',
7 => 'Julio',
8 => 'Agosto',
9 => 'Septiembre',
10 => 'Octubre',
11 => 'Noviembre',
12 => 'Diciembre'
);
foreach ($row as $value) {
echo "<tr>\n";
echo " <td>".$meses[$value['mes']]."</td>\n";
foreach ($row as $value) {
for ($i = 1; $i <= 13; $i++) {
echo '<td>';
switch ($i) {
case 1:
if (isset($value['hhr'])) echo $value['hhr']; else echo '0';
break;
case 2:
if (isset($value['htra'])) echo $value['htra']; else echo '0';
break;
case 3:
if (isset($value['ntra'])) echo $value['ntra']; else echo '0';
break;
case 4:
if (isset($value['diatra'])) echo $value['diatra']; else echo '0';
break;
case 5:
if (isset($value['diasacc'])) echo $value['diasacc']; else echo '0';
break;
case 6:
if (isset($value['totalacc'])) echo $value['totalacc']; else echo '0';
break;
case 7:
if (isset($value['acccon'])) echo $value['acccon']; else echo '0';
break;
case 8:
if (isset($value['accsin'])) echo $value['accsin']; else echo '0';
break;
case 9:
if (isset($value['diaper'])) echo $value['diaper']; else echo '0';
break;
case 10:
if (isset($value['diacar'])) echo $value['diacar']; else echo '0';
break;
case 11:
if (isset($value['inneta'])) echo $value['inneta']; else echo '0';
break;
case 12:
if (isset($value['inbruta'])) echo $value['inbruta']; else echo '0';
break;
case 13:
if (isset($value['inseve'])) echo $value['inseve']; else echo '0';
break;
}
echo '</td>';
}
}
echo '</tr>';
}
?>
Código PHP:
public function index() {
$this->load->model('Art');
$data['row'] = $this->Art->consultar($this->session->userdata('id'));
//Aqui hasta lo momentos mostraremos la tabla
$this->load->view('clientes/header');
$this->load->view('clientes/art',$data);
$this->load->view('clientes/footer');
}
Código PHP:
function consultar($id) {
$query = $this->db->get_where('art', array('idusuario' => $id,'ano' => date('Y')));
return $query->result_array();
}
Antes usaba $query->result(); para que me devuelva un Objeto pero cambie a que me genere un Array por ser mas versatil por los bucles. Pero hasta yo mismo me recozco que el metodo que uso es deficiente.
Saludos desde Venezuela!
Muchas gracias por la ayuda, me alegra unirme a esta comunidad.