Ayuda con función en ciclo FOR, nadieee ????

Iniciado por mokoMonster, 27 Enero 2011, 23:05 PM

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

mokoMonster

Función en Ciclo FOR
[/b]
Hola a todos,

Dejen que les explique el por que es un problema.
Estoy haciendo un sistema de reservaciones y obviamente tiene una base de datos.

Desde la pagina tablareserv.php llamo a la función que esta dentro de una tabla que se despliega según los días del mes($m) y las habitaciones disponibles($habitacion).
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='#FFFFFF'><b>".$dia."</b></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>"
}
echo 
"</table>"


Esta función esta en un include y es la que se encarga de hacer el ciclo correspondiente para que la siguiente función checar_disponibilidad() se ejecute correctamente.
function devuelve_conteo($habitacion,$m)
{
	
$dia_conteo=1;
	
	
while(
$dia_conteo<$m+1)
	
	
{
	
	
    echo 
"<td><center>",checar_disponibilidad($habitacion,$dia_conteo),"</center></td>";
	
	
	
$dia_conteo++;
	
	
}
}


Esta es la función checar_disponibilidad que es en la que radica el problema.
function checar_disponibilidad($habitacion,$dia_conteo)
{
	
$link=Conectarse();
	
$con=mysql_query("SELECT f_ll_dia FROM Reservaciones WHERE f_ll_dia='".$dia_conteo."' AND f_ll_mes='".date('M')."' AND f_ll_ano='".date('Y')."'",$link)or die(mysql_error());
	
$c_fecha=mysql_fetch_array($con);

	
$con2=mysql_query("SELECT * FROM Reservaciones WHERE numero_habitacion='".$habitacion."'",$link)or die(mysql_error());
	
$c_habitacion=mysql_fetch_array($con2);

	
if(
$habitacion==$c_habitacion['numero_habitacion']&&$dia_conteo==$c_fecha['f_ll_dia'])
	
{
	
	
echo 
'RESERVADA';
	
}
	
else
	
{
	
	
echo 
'L';
	
}
}


Hasta aquí la tabla funciona, se despliega correctamente, solo que obviamente vacía por que aun no hay registros, Ahora supongamos que se añade un registro, que llega el día 20 de Enero a la Habitación numero 5, entonces ahora el valor de $c_habitacion['numero_habitacion'] = 5 y $c_fecha['f_ll_dia'] = 20.
En este momento cuando se consulta tablareserv.php en la tabla aparece que la Habitación 5 el día 20 de Enero esta RESERVADA.

Perooooooo cuando se agrega otra entrada a la tabla de la base de datos con   $c_habitacion['numero_habitacion'] = 9 y $c_fecha['f_ll_dia'] = 12 (noten que cambio a 9 y 12 respectivamente), bueno hasta aquí están de acuerdo en que en tablareserv.php debería imprimir que:

*La habitación 5 el 20 de Enero esta Reservada.
*La habitación 9 el 12 de Enero esta Reservada.

Pero no sucede así, lo que sucede a la hora de mostrar la tabla aparece que:
*La habitación 5 esta ocupada el 20 y el 12 de Enero.

Osea que se imprimen en la misma fila y no debe ser así.
Alguien me podría orientar un poco?

Saludos.


En esta linea es donde creo que esta el problema..
if($habitacion==$c_habitacion['numero_habitacion']&&$dia_conteo==$c_fecha['f_ll_dia'])

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

~ Yoya ~

Es un poco complicado entender tu problema, explica tu problema utilizando PoC o ejemplos mas claros, así todos te entenderán.
Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.

bomba1990

hay dos cosa, una no somos adivinos y la segunda si nos das mas informacion podrias ayudarnos a ayudarte.

hay dos cosas, primero serciorate de que en la bd salga como es debido y segundo

Código (php) [Seleccionar]


$con=mysql_query("SELECT f_ll_dia FROM Reservaciones WHERE f_ll_dia='".$dia_conteo."' AND f_ll_mes='".date('M')."' AND f_ll_ano='".date('Y')."'",$link)or die(mysql_error());

$c_fecha=mysql_fetch_array($con);


$con2=mysql_query("SELECT * FROM Reservaciones WHERE numero_habitacion='".$habitacion."'",$link)or die(mysql_error());


no seria mejor si resumes estas dos sentencias en una sola?? no te ahorras codigo?
"Cuando le di de comer a los pobres me llamaron santo, pero cuando pregunte porque los pobres eran pobres me dijeron comunista"

http://sosinformatico.blogspot.com/
http://www.publisnet.com.ve

~ Yoya ~

Cita de: bomba1990 en 29 Enero 2011, 04:49 AM
hay dos cosa, una no somos adivinos y la segunda si nos das mas informacion podrias ayudarnos a ayudarte.

hay dos cosas, primero serciorate de que en la bd salga como es debido y segundo

Código (php) [Seleccionar]


$con=mysql_query("SELECT f_ll_dia FROM Reservaciones WHERE f_ll_dia='".$dia_conteo."' AND f_ll_mes='".date('M')."' AND f_ll_ano='".date('Y')."'",$link)or die(mysql_error());

$c_fecha=mysql_fetch_array($con);


$con2=mysql_query("SELECT * FROM Reservaciones WHERE numero_habitacion='".$habitacion."'",$link)or die(mysql_error());


no seria mejor si resumes estas dos sentencias en una sola?? no te ahorras codigo?

Por esa razón se puede usar PoC o hacer todo maqueteado.
Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.

bomba1990

Cita de: ~ Yoya ~ en 29 Enero 2011, 13:00 PM
Por esa razón se puede usar PoC o hacer todo maqueteado.

me puedes decir que es PoC??
"Cuando le di de comer a los pobres me llamaron santo, pero cuando pregunte porque los pobres eran pobres me dijeron comunista"

http://sosinformatico.blogspot.com/
http://www.publisnet.com.ve

~ Yoya ~

Cita de: WikipediaA proof of concept or a proof of principle is realization of a certain method or idea(s) to demonstrate its feasibility,[1] or a demonstration in principle, whose purpose is to verify that some concept or theory is probably capable of being useful. A proof-of-concept may or may not be complete, and is usually small and incomplete.
Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.