Había posteado este código hace unos días, pero al tratarlo de moldear a lo que necesito me entre con otro problema.
Lo que hace este código es imprimir una tabla con una fila donde van los números del mes y una columna con el numero de habitaciones disponibles, ahora lo que quiero es en todos los espacios vacíos se impriman los números del mes, en realidad lo quiero por que usare ese numero con una función para checar en la base de datos si esa habitación esta disponible ese día. Pero el problema creo que radica en que cuando imprime 31 se siguen creando las filas por que no se añade el </tr> para que siga con la fila de la habitación siguiente.
Alguien me podría orientar por favor?
$habitaciones=10;
$dias=31;
echo "<table width='70%' align='center' border='1' cellspacing='0' cellpadding='0'>";
echo "<tr><td> </td>";
for($dia=1;$dia<=$m;$dia++){
echo "<td width='25'> ".$dia."</td>";
}
echo "</tr>";
for($habitacion=1;$habitacion<=$habitaciones;$habitacion++){
echo "<tr>";
echo '<td width="125">Habitacion '.$habitacion.'</td>';
for($var=1;$var<=$m;$var++){
$ma=1;
while($ma!=($dias+1)) {
echo "<td>".$ma++."</td>"; }
}
}
echo "</tr>";
echo "</table>";
Muchas gracias ;) Saludos
eehhm no entendi bien, esto es lo que buscas?
<?php
$habitaciones=10;
$dias=31;
echo "<table width='70%' align='center' border='1' cellspacing='0' cellpadding='0'>";
echo "<tr>
<td width='400px'> </td>";
for($dia=1;$dia<=$dias;$dia++)
echo "<td width='25px'> ".$dia."</td>";
echo "</tr>";
for($habitacion=1;$habitacion<=$habitaciones;$habitacion++)
{
echo "<tr>";
echo '<td width="125">Habitacion '.$habitacion.'</td>';
for($dia=1;$dia<=$dias;$dia++)
echo "<td width='25'> </td>";
echo "</tr>";
}
echo "</table>";
?>
$habitaciones=10;
$dias=31;
echo "<table width='70%' align='center' border='1' cellspacing='0' cellpadding='0'>";
echo "<tr>
<td width='400px'> </td>";
for($dia=1;$dia<=$dias;$dia++)
echo "<td width='25px'> ".$dia."</td>";
echo "</tr>";
for($habitacion=1;$habitacion<=$habitaciones;$habitacion++)
{
echo "<tr>";
echo '<td width="125">Habitacion '.$habitacion.'</td>';
for($dia=1;$dia<=$dias;$dia++)
echo "<td width='25'> </td>";
echo "</tr>";
}
echo "</table>";
Si, algo así, mira.. esta bien tu código, pero lo que necesito es que en esta linea echo "<td width='25'> </td>"; en lugar de (que de hecho se imprime obvio en cada celda) necesito que en lugar el espacio, que en la fila de habitación 1 se imprima en las celdas siguientes en caso de que fueran 31 dias en el mes, que se imprima del 1 al 31, para yo después poder tomar ese numero para usarlo en la función, la linea quedaría algo así como echo "<td width='25'>".funcion($numero)."</td>";, pero necesito que también en habitación 2, y habitación 3, etc se imprima del 1 al 31.. es que lo he intentado de varias formas, pero me enumera todas las celdas del 1 al infinito....
espero explicarme correctamente :) y gracias, muchas gracias
solo cambiala por:
echo "<td width='25'>",funcion($dia),"</td>";
Si miras el ejemplo que te puse la última vez ( http://foro.elhacker.net/php/problema_con_tabla_y_ciclo_for-t316161.0.html;msg1566056#msg1566056 ) hacía que se imprimiesen todos los días dentro de cada celda, así que lo único que tienes que hacer es adaptarlo para que haga la tabla como tú quieras y ya está.
Cita de: cassiani en 14 Enero 2011, 01:03 AM
solo cambiala por:
echo "<td width='25'>",funcion($dia),"</td>";
Perfecto, ahora funciona :) Pero podrías explicarme por que ',' en lugar de '.' ??
Por favor. :) Y muchas gracias :)
Cita de: Spider-Net en 14 Enero 2011, 04:21 AM
Si miras el ejemplo que te puse la última vez ( http://foro.elhacker.net/php/problema_con_tabla_y_ciclo_for-t316161.0.html;msg1566056#msg1566056 ) hacía que se imprimiesen todos los días dentro de cada celda, así que lo único que tienes que hacer es adaptarlo para que haga la tabla como tú quieras y ya está.
Thats right :) Ya avance mucho, prometo postearlo cuando lo termine :)
Es mas, ya lo tengo.
Tabla de reservaciones.
echo "<table width='90%' align='center' border='1' cellspacing='0' cellpadding='0'>";
echo "<tr><td> </td>";
for($dia=1;$dia<=$m;$dia++){
echo "<td width='25'><center><font color='#3366FF'>".$dia."</font></center></td>";
}
echo "</tr>";
for($habitacion=1;$habitacion<=$habitaciones;$habitacion++){
echo "<tr>";
echo '<td width="125">Habitacion '.$habitacion.'</td>';
devuelve_conteo($habitacion,$m);
echo "</tr>";
}
Funciones
#########################################
function checar_disponibilidad($habitacion,$uno)
{
if(($habitacion==3)&&($uno==5))
{
echo 'RESERVADA';
}
else
{
echo 'L';
}
}
#########################################
function devuelve_conteo($habitacion,$m)
{
$uno=1;
while($uno<$m+1)
{
echo "<td><center>",checar_disponibilidad($habitacion,$uno),"</center></td>";
$uno++;
}
}
Yeiiii :) Muy feliz que estoy. Gracias :)
Si lo que estás programando es un motor de reserva de habitaciones de hoteles, yo tengo uno programado en PHP y AJAX con su panel de administración y todo, si quieres negociamos un precio y te lo doy todo hecho xDD
Cita de: Spider-Net en 14 Enero 2011, 20:44 PM
Si lo que estás programando es un motor de reserva de habitaciones de hoteles, yo tengo uno programado en PHP y AJAX con su panel de administración y todo, si quieres negociamos un precio y te lo doy todo hecho xDD
Muchas gracias, en realidad es un proyecto de la escuela y estoy muy emocionado por terminarlo.
Seguro se lo podrás vender a alguien que lo ocupe mas que yo :)
Saludos.
Jejeje, era una broma hombre, en el apartado de bases de datos hay un usuario preguntando también sobre un ejercicio con hoteles, parece que se ha puesto de moda lo de usar ejercicios de hoteles xD
Cita de: mokoMonster en 14 Enero 2011, 20:11 PM
Perfecto, ahora funciona :) Pero podrías explicarme por que ',' en lugar de '.' ??
Por favor. :) Y muchas gracias :)
si usas comas ',' en lugar de puntos '.', te evitas la concatenación, estarías pasando cada valor como argumento separado y a la hora de imprimirla es ligeramente mas rápido.