Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/08/2011, 15:14
Yhoni
 
Fecha de Ingreso: mayo-2009
Mensajes: 10
Antigüedad: 15 años
Puntos: 3
Como ejecutar un while dentro de un while

Estimados Sres y nuevos compañeros, lo primero agradecer el trabajo que haceis aportandonos conocimientos a los que menos sabemos.

Rapidamente pasando al grano del asunto para no entreteneros demasiado, soy un pobre aficionado a la programación en php y mysql y todo lo que he aprendido ha sido a base de leerme los tutoriales en la red y gracias a la aportación de gente con espiritu de compartir como ustedes.

Aún estoy muy verde pero me he puesto como objetivo programar una tabla de reservas de pistas de tenis en php y mysql para un amigo que me ha pedido el favor y de paso el reto de saber si el tiempo que llevo delante de la pantalla me sirve para algo.

Tengo una bd mysql con las siguiente tablas:

tabla_pistas: id_pista, numero_pista
tabla_horarios: id_horario, horario
tabla_reservas: id_reserva, id_horario, id_pista


Y en un principio me conformo con mostrar en una web los horarios de una fecha elegida previamente en un formulario hasta fin de mes, cuando esto funcione seguiré para poder mostrar en colores las horas reservadas y filtrar los dias a mostrar.

He realizado una funcion que pretendo que se ejecute tantas veces como dias a mostrar:

Código PHP:
$sql1=mysql_query ('SELECT * FROM tabla_horarios order by horario');

// con esta funcion mostramos la tabla completa de horarios disponibles para su reserva para cada pista.

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>';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>';}
                                                                                 }
                 } 
Y con este while que sigue intento que se ejecute la funcion anterior tantas veces como dias queden hasta fin de mes (recogido en la variable $ultimodia) despues de la fecha elegida en el formulario:

Código PHP:
$dia=1;
while (
$dia<$ultimodia){
$tabla=horarios ($sql1,$dia);
$dia++; 

El problema que tengo es que el while de la funcion solo se ejecuta una vez y solo muestra un dia y necesito que se ejecute tantas veces como dias queden hasta fin de més ( me conformo con saber como hacer que se ejecute un par de veces ).


Siento mucho la parrafada pero era casi necesario para explicar el problema que tengo.

Muchas gracias de antemano a todos los que esteis molestandoos por lo menos en leer el post.


Saludos cordiales.