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

Cita:
Iniciado por johhan16 Ver Mensaje
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&iacute;l";
break;
case 
05$mes="Mayo";
break;
case 
06$mes="J&uacute;nio";
break;
case 
07$mes="J&uacute;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.

Última edición por Yhoni; 03/08/2011 a las 06:22