Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/01/2014, 12:07
easteteb
 
Fecha de Ingreso: enero-2014
Mensajes: 10
Antigüedad: 10 años, 3 meses
Puntos: 0
Referencia Cruzada

Ante todo saludos.
Antes de exponer este tema he buscado mucho en internet y no encontré nada parecido ni algo adaptable a lo que busco. Mi problema es el siguiente: Estoy haciendo un reporte individualizado en pantalla para ver los horarios de los médicos de un centro asistencial. La base de datos con la que cuento tiene los registros de todos los médicos y cada registro contiene entre varios campos el día que tiene un determinado turno cada médico.
El código con el que cuento hasta el momento es el siguiente:

Código:
<?php
require_once('conexion.php');
$titulo = "GENERACION DE <span>HORARIO</span> INDIVIDUALIZADO";

$tip_hora = isset($_POST['tip_hora']) ? $_POST['tip_hora'] : null; 

switch ($tip_hora)
{
	case "Ambos":
		$sql = "SELECT * FROM adprogra WHERE pr_cser='".$ser_list."' AND pr_ncmp='".$med_list."'";
		break;
	case "H. Normal":
		$sql = "SELECT * FROM adprogra WHERE pr_cser='".$ser_list."' AND pr_ncmp='".$med_list."' AND pr_tipo='0' GROUP BY pr_cact";
		break;
	case "H. Extra":
		$sql = "SELECT * FROM adprogra WHERE pr_cser='".$ser_list."' AND pr_ncmp='".$med_list."' AND pr_tipo='1'";
		break;
}

$res = mysql_query($sql) or die(mysql_error());
?>
<div id="container">
<table border="1">
<tr>
<?php
echo "<td width=28%>";
echo "Actividad";
echo "</td>";
echo "<td width=10%>";
echo "Turno";
echo "</td>";
for ($i = 1; $i <= 31; $i++)
{
	echo "<td witdh=2%>";
   	echo $i;
	echo "</td>";
}
?>
</table>
<br/>
<table border="1">
<?php
	while ($fila = mysql_fetch_array($res))
	{
	$activi = $fila['pr_cact'];
	$rantur = $fila['pr_hini']."-".$fila['pr_hfin'];
	echo "<tr>";
		echo "<td width=28%>";
		echo $activi." (".$fila['actividad'].")";
		echo "</td>";
		echo "<td width=10%>";
		echo $rantur;
		echo "</td>";

		$dd = 1;
		$vv = $fila['dia'];
		while ($dd<=31)
		{
			echo "<td width=2%>";
			if ($dd!=$fila['dia'])
				{
				echo "";
				}
			else
				{
				echo $fila['dia'];
				}
			$dd++;
			echo "</td>";
		}
	echo "</tr>";
	}
?>
</table>
</div>
Pues bien, cuando ejecuto el código me muestra sólo el primer horario que encuentra y esto es lógico debido a la cláusula GROUP BY que uso en el SELECT, pero si le quito el GROUP BY me muestra cada una de las filas del campo "actividad". Lo que deseo es que me muestre en cada fila correspondiente a la "actividad" los respectivos días y no sólo el primer registro.
Espero haber sido específico y gracias anticipadas por sus respuestas.