Alguien que sepa como hacer esto? Por favor :)

Iniciado por mokoMonster, 13 Enero 2011, 00:10 AM

0 Miembros y 1 Visitante están viendo este tema.

mokoMonster

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>&nbsp;</td>";
for($dia=1;$dia<=$m;$dia++){
   echo "<td width='25'>&nbsp;".$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
"Se necesitaron unos instantes para cortarle la cabeza, pero se necesitara un siglo para producir otra igual."
Lagrange

cassiani

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'>&nbsp;</td>"
;
for(
$dia=1;$dia<=$dias;$dia++)
    echo 
"<td width='25px'>&nbsp;".$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'>&nbsp;</td>";
echo "</tr>";
}
echo 
"</table>";
?>


mokoMonster


$habitaciones=10;
$dias=31;
echo "<table width='70%' align='center' border='1' cellspacing='0' cellpadding='0'>";
echo "<tr>
<td width='400px'>&nbsp;</td>";
for($dia=1;$dia<=$dias;$dia++)
    echo "<td width='25px'>&nbsp;".$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'>&nbsp;</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'>&nbsp;</td>"; en lugar de &nbsp; (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 
"Se necesitaron unos instantes para cortarle la cabeza, pero se necesitara un siglo para producir otra igual."
Lagrange

cassiani

solo cambiala por:
echo "<td width='25'>",funcion($dia),"</td>";

Spider-Net

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á.

mokoMonster

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 :)


"Se necesitaron unos instantes para cortarle la cabeza, pero se necesitara un siglo para producir otra igual."
Lagrange

mokoMonster

Es mas, ya lo tengo.

Tabla de reservaciones.
echo "<table width='90%' align='center' border='1' cellspacing='0' cellpadding='0'>";
echo "<tr><td>&nbsp;</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 :)
"Se necesitaron unos instantes para cortarle la cabeza, pero se necesitara un siglo para producir otra igual."
Lagrange

Spider-Net

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

mokoMonster

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.
"Se necesitaron unos instantes para cortarle la cabeza, pero se necesitara un siglo para producir otra igual."
Lagrange

Spider-Net

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