Foros del Web » Programando para Internet » PHP »

Problema al recorrer array

Estas en el tema de Problema al recorrer array en el foro de PHP en Foros del Web. Hola buenos días. Estoy haciendo una aplicación de reservas on-line, y tengo un problema al recorrer una variable de sesión que es un array, y ...
  #1 (permalink)  
Antiguo 15/04/2009, 02:04
 
Fecha de Ingreso: marzo-2005
Mensajes: 197
Antigüedad: 19 años, 1 mes
Puntos: 1
Problema al recorrer array

Hola buenos días.

Estoy haciendo una aplicación de reservas on-line, y tengo un problema al recorrer una variable de sesión que es un array, y que en cada una de sus celdas contiene otro array hecho a partir de variables que llegan por GET con información respecto a la habitación (id de la habitación, número de adultos y de niños por habitación...)

El vector se crea de esta manera:

Código PHP:
Ver original
  1. $arr_co = array();
  2. $arr_co["id"] = $_GET["id_iHab"];
  3. $arr_co["ad"] = $_GET["n1"];
  4. $arr_co["ni"] = $_GET["n2"];
  5. $arr_co["ha"] = $_GET["habAct"];
  6.  
  7. if (!isset ($_SESSION["x"]) || empty ($_SESSION["x"]))
  8.     $_SESSION["x"] = 0;
  9. else
  10.     $_SESSION["x"] ++;
  11.  
  12. $_SESSION["c"][$_SESSION["x"]] = $arr_co;

El vector se llena correctamente, de hecho al hacer un var_dump antes de intentar recorrerlo, esta es su estructura:

Código HTML:
  [0]=>
  array(4) {
    ["id"]=>
    string(1) "2"
    ["ad"]=>
    string(1) "2"
    ["ni"]=>
    string(1) "0"
    ["ha"]=>
    string(1) "1"
  }
}
El problema lo tengo al recorrerlo, ya que tal y como lo recorro (así)

Código PHP:
Ver original
  1. foreach ($_SESSION["c"] as $val)
  2. {
  3.     if (is_array ($val))
  4.     {
  5.         foreach ($val as $arr)
  6.         {
  7.             $s_1 = "SELECT it_Hab.id_iHab... FROM it_Hab, it_Knd_Hab, ... WHERE it_Hab.id_iHab='" . $arr["id"] . "'";
  8.             $q_1 = mysql_query ($s_1, $dbh) or die ('I cannot execute the query because: ' . mysql_error () . '<br />And the query is: ' . $q_1 . '<br />');
  9.             $r_1 = mysql_fetch_array ($q_1);
  10.  
  11.             echo "<div>";
  12.             echo "<p><strong>Habitaci&oacute;n " . $arr["habAct"] . "</strong></p>";
  13.             echo "<p>" . $r_1['nameHab'] . " - " . $r_1['nameKnd'] . " - " . ($r_1['tarifa'] * $dias_diferencia) . " &euro; (" . $r_1['tarifa'] . "/D&iacute;a)</p>";
  14.             echo "</div>";
  15.         }
  16.     }
  17. }

Ya que el último foreach me lo hace cuatro veces en lugar de una (que es lo que me gustaría, que repitiese el bucle una vez por cada habitación seleccionada.

¿Alguien sabría decirme que estoy planteando mal?



Muchas gracias a todos y un saludo.
  #2 (permalink)  
Antiguo 15/04/2009, 02:12
 
Fecha de Ingreso: marzo-2005
Mensajes: 197
Antigüedad: 19 años, 1 mes
Puntos: 1
Respuesta: Problema al recorrer array

Siento no haber sido demasiado claro.

El problema es que el último foreach me lo hace cuatro veces (por cada uno de los campos que tiene el array val) mientras que lo que yo quiero es que sólo lo haga una vez por cada id, es decir: que sólo me haga el bucle para cada $arr["id"] distinto...

No se si me he explicado bien, espero que sí.

Un saludo para todos.
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 04:58.