Foros del Web » Programando para Internet » PHP »

Problema con comparacion con array

Estas en el tema de Problema con comparacion con array en el foro de PHP en Foros del Web. Hola muy buenas, el problema que tengo es el siguiente: Resulta que creo un array multidimensional con una consulta, la aplicacion consiste en que me ...
  #1 (permalink)  
Antiguo 13/06/2011, 12:12
 
Fecha de Ingreso: mayo-2011
Mensajes: 6
Antigüedad: 12 años, 11 meses
Puntos: 0
Problema con comparacion con array

Hola muy buenas, el problema que tengo es el siguiente:

Resulta que creo un array multidimensional con una consulta, la aplicacion consiste en que me tiene que imprimir por pantalla un horario escolar y decirme reservada en la casilla correspondiente.
Código:
<?php
//inserto la consulta de las aulas reservadas en un array
$i = 0;
	while (@$fila = mysql_fetch_array($resultado)) { 
		$datos[$i]['iddiashoras_reserva']= $fila['iddiashoras'];
		$datos[$i]['fecha_reserva']= $fila['fecha'];
		$datos[$i]['nombre_aula_reserva']= $fila['nombre'];
		$datos[$i]['nombre_completo_reserva']= $fila['nombre_completo'];
		$i++;
		
	}
//hago un foreach para mostrar los datos y ver que realmente me ha metido correctamento los valores

foreach ($datos as $v1) {
		foreach ($v1 as $v2) {
			echo "$v2\n";
		 }
		}
?>

?>


       <table class="tabla_formu"align="center" border="1" width="100%" height=="100%">
        
        <tr>
           <td>&nbsp;</td>
           <td>Lunes</td>
            <td>Martes</td>
            <td>Miercoles</td>
            <td>Jueves</td>
            <td>Viernes</td>
       </tr>
       <tr>
       		
       </tr>
           
        
        
        <?php
		
		$contador=1;
		
		for($i=0;$i<=5;$i++) //horas
		{
			
?>
            <tr>
            	<td> <?php echo $i+1; ?> </td> <!-- imprimo el numero de las horas 1..6-->
      			<?php
				
					for($j=0;$j<=4;$j++) //dias "aqui relleno los td"
					{
						echo "<td>";
						//echo $contador;
						//echo @$datos[$j]['iddiashoras_reserva'];
//contador deberia coincidir con iddiashoras_reserva por ejemplo "iddiashoras_reserva=1 seria Lunes a primera, 2 Martes a primera etc..." pero no me imprime la RESERVADA
						if($contador==@$datos[$j]['iddiashoras_reserva']) 
						{
							echo "RESERVADA";
						}
						
						$contador++;
							
					}
						
						echo "</td>";
		}

				?>
            
            </tr>
            <?php
			
			
		}
		?>
        
        
	
		</table>
Gracias desde ya!.
  #2 (permalink)  
Antiguo 13/06/2011, 12:15
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Problema con comparacion con array

¿Y los errores o el problema es?
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 13/06/2011, 12:17
 
Fecha de Ingreso: mayo-2011
Mensajes: 6
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: Problema con comparacion con array

Perdon perdon, el problema es que me tendria que mostrar RESPONDEr en la casilla corresponiente, es decir donde el valor del array coincida con el contador.

Gracias!
  #4 (permalink)  
Antiguo 13/06/2011, 12:20
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Problema con comparacion con array

¿Qué te sale? Mientras, es bueno que veas el comportamiento de las variables usando var_dump, así sabes que va imprimiendo cada vez que se vea.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 13/06/2011, 12:25
 
Fecha de Ingreso: mayo-2011
Mensajes: 6
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: Problema con comparacion con array

Cita:
Iniciado por abimaelrc Ver Mensaje
¿Qué te sale? Mientras, es bueno que veas el comportamiento de las variables usando var_dump, así sabes que va imprimiendo cada vez que se vea.
Si descomento
echo $contador;

Sale 1 en lunes a primera ,2 el martes a primera etc hasta el viernes a 6ta que seria 30

Si descomento
echo @$datos[$j]['iddiashoras_reserva'];

Sale 2 y 28 "las aulas que estan reservadas" en todas las horas del lunes y martes.

Gracias! estoy intentando resorvelo metiendo otro for dentro, a ver si sale..
  #6 (permalink)  
Antiguo 13/06/2011, 13:03
 
Fecha de Ingreso: mayo-2011
Mensajes: 6
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: Problema con comparacion con array

ya me anda el bucle

ha quedado algo asi la parte del bucle

Código:
		$contador=1;
		
		for($i=0;$i<=5;$i++) //horas
		{
			
?>
            <tr>
            	<td> <?php echo $i+1; ?> </td> <!-- imprimo el numero de las horas 1..6-->
      			<?php
				
					for($j=0;$j<=4;$j++) //dias "aqui relleno los td"
					{
						echo "<td>";
						//echo $contador;
						//echo @$datos[$j]['iddiashoras_reserva'];
						
						for($k=0;$k<=$numero_total;$k++) //$numero total es un count(*) de la cantidad elementos que hay en el array $datos


						{
							
							if($contador==@$datos[$k]['iddiashoras_reserva'])
							{
								
								echo "RESERVADA<br>";
							}
						}
						$contador++;
							
					}
						
						echo "</td>";
		}

				?>
            
            </tr>
            <?php
			
			
		}
		?>
Probablemente no sea lo mas óptimo ni en broma, pero funciona
  #7 (permalink)  
Antiguo 13/06/2011, 13:29
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Problema con comparacion con array

No es buena práctica el usar @ antes de cada variable. Puede ocacionarte problemas inesperados. Lo mejor es tratar los errores y corregirlos.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos

Etiquetas: comparacion
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:44.