Cita:
Iniciado por johhan16 Bueno si el primer while lo lee una sola vez debe ser porque solo tiene un registro
Código PHP:
while ($valores=mysql_fetch_array($sql)) {
en ese caso el $sql
seria bueno que coloque el codigo todo junto para ver como es que en si lo tienes, porque asi separado no se entiende si esta uno dentro del otro.
como yo lo medio entiendo deberias colocar primero el while de los dias, luego el otro, asi este obliga a trabajar al otro (si hay registros por supuesto)
Cita:
Iniciado por vgonga1986 Si puedes poner el código completo, le echaré un nuevo vistazo y a ver si podemos arreglarlo, que no parece tan difícil.
Un saludo.
Os doy de antemano muchas gracias a los dos por la atención y os muestro el código que es muy sencillo:
Código PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<?php
require ("funciones.php");
?>
<?php
///////////////////////////////////////////////////////////
// recogemos en la variable $mes_elegido el nombre de cada mes
$mes_elegido=03;
switch ($mes_elegido){
case 01: $mes="Enero";
break;
case 02: $mes="Febrero";
break;
case 03: $mes="Marzo";
break;
case 04: $mes="Abríl";
break;
case 05: $mes="Mayo";
break;
case 06: $mes="Júnio";
break;
case 07: $mes="Júlio";
break;
case 08: $mes="Agosto";
break;
case 09: $mes="Septiembre";
break;
case 10: $mes="Octubre";
break;
case 11: $mes="Noviembre";
break;
case 12: $mes="Diciembre";
break;
}
///////////////////////////////////////////////////////////
?>
<?php
echo '
<html>
<head>
<title>Título</title>
</head>
<body>
<table border=1>
<th colspan=5>Mes de '.$mes.'</th>
<tr>
<td></td><td>Pista1</td><td>Pista2</td><td>Pista3</td>
</tr>';
////////////////////////////////////////////////////////////////////////////////
// incluimos la función que nos dara el número de dias que tiene el més seleccionado
include ('diasdelmes.inc.php');
$ultimodia=UltimoDia(2011,$mes_elegido);
//echo $ultimodia.'<br>';
// conectamos con la tabla y extraemos la lista de horarios de las pistas
$resultado=conexion ('localhost','usuario','password','nombre_db');
//echo 'el resultado de la conexión con la base de datos es:'.$resultado.'<br>';
$sql1=mysql_query ('SELECT * FROM tabla_horarios order by horario')or die(mysql_error());
//////////////////////////////////////////////////
// función muestra tabla horarios
function horarios($sql,$dias){
while ($valores=mysql_fetch_array($sql)) {
// ordenamos la aparicion de los horarios de las pistas en las celdas con id_pista
if($valores['id_pista']==1){ echo '<tr>';/* verificamos que si es el primer registro mostramos la celda con el numero del dia y un rowspan para ocupar todas las celdas de horarios de un dia*/if($valores['id_horario']==1) { echo '<td rowspan=11>Dia '.$dias.'</td>';}echo '<td>'.$valores['horario'].'</td>';}
if($valores['id_pista']==2){ echo '<td>'.$valores['horario'].'</td>';}
if($valores['id_pista']==3){ echo '<td>'.$valores['horario'].'</td></tr>';}
}
}
// Fin funcion muestra tabla horarios
///////////////////////////////////////////////////
// Mostramos la tabla de horarios del dia recogido en $dia y los horarios de todos los dias que quedan hasta fin de mes recogidos en la $ultimodia.
$dia=27;
while ($dia<$ultimodia){
$tabla=horarios ($sql1,$dia);
$dia++;
//echo'<br>';
//echo $dia;
}
?>
</table>
</body>
</html>
El contenido del archivo funciones.php del include() del principio del código solo contiene la conexión a la base de datos:
Código PHP:
<?php
// funcion para conectar con la base de datos
function conexion($servidor,$user,$password,$db){
$connect=mysql_connect($servidor,$user,$password);
$select_db=mysql_select_db ( $db,$connect);
$result=$select_db;
return $result;
}
¿ cual puede ser el motivo porque el cual no se muestra una tabla de horarios por cada dia que falta hasta fin de mes ?
Gracias a todos.