Hola, primero, gracias por intentar ayudarme. Intentaré explicar lo mas claro posible cual es mi problema.
Lo que quiero conseguir: Tengo una tabla donde guardo la informacion de asistencia de los alumnos de un curso. Guardo en esta tabla idalumno, idcurso, fecha asistencia, horas asistidas y dia,mes y año(es decir, la fecha por partes). Lo que quiero hacer es una tabla resumen con los dias del mes como encabezado de columnas, los nombres de los alumnos como encabezado de filas y las horas diarias asistidas en la interseccion.
Lo que tengo:
Código PHP:
<?
$ultimoDia = date('t',$fecha);
$numMes = 0;
?>
<tr>
<td width="14%" height="19" align="center">---</td>
<?
for ($numMes = 0; $numMes < $ultimoDia; $numMes++){
?>
<td width="14%" height="19" align="center"><? echo ($numMes)+1;?></td>
<?
}
?>
</tr>
Con esto (resumiendo) genero los dias del mes en el encabezado de columnas.
Pero no encuentro la manera de encajar los datos de asistencia de cada alumno con su dia correspondiente.
Lo que he probado: Infinidad de cosas y consultas, por ejemplo:
Código PHP:
<?
$numMes = 0;
for ($numMes = 0; $numMes < $ultimoDia; $numMes++){
$dia=$numMes+1;
$sql2="SELECT * FROM relalumnesassis ra,defalumnes da WHERE ra.dia=$dia AND ra.mes=$mes AND ra.ano=$ano AND ra.idcurs=$idcurs AND ra.idalumne=da.idalumne ORDER BY da.cognom";
$res2=mysql_query($sql2) or die('La consulta falló: ' . mysql_error());
while($r2=mysql_fetch_array($res2,MYSQL_ASSOC)){
?>
<tr>
<td align="center"><? echo $r2["cognom"].", ".$r2["nomalumne"];?></td>
<?
$sql3="SELECT horesassis FROM relalumnesassis ra WHERE ra.dia=$dia AND ra.mes=$mes AND ra.ano=$ano AND ra.idcurs=$idcurs AND ra.idalumne=".$r2["idalumne"];
$res3=mysql_query($sql3) or die('La consulta falló: ' . mysql_error());
while($r3=mysql_fetch_array($res3,MYSQL_ASSOC)){
?>
<td align="center"><? echo $r3["horesassis"];?></td>
<?
}
}
?>
</tr>
Pero claro, eso no me cuadra asistencias con dias (a menos que tuviera todos los dias del mes entrados, cosa que puede no pasar.)
Alguna idea de como puedo hacerlo?
Gracias