Foros del Web » Programando para Internet » PHP »

Array muy extraño en PHP, problema tonto y grave

Estas en el tema de Array muy extraño en PHP, problema tonto y grave en el foro de PHP en Foros del Web. Hola compañeros, soy nuevo en este foro y tengo una pregunta. Tengo el siguiente For: Código: <?php for($i=0;$i<$_SESSION["x"]+1;$i++) { ?> <tr> <td><?php echo $_SESSION['carrito']['i'][0] ?> ...
  #1 (permalink)  
Antiguo 28/08/2005, 07:31
 
Fecha de Ingreso: agosto-2005
Mensajes: 4
Antigüedad: 12 años, 3 meses
Puntos: 0
Array muy extraño en PHP, problema tonto y grave

Hola compañeros, soy nuevo en este foro y tengo una pregunta. Tengo el siguiente For:

Código:
<?php
for($i=0;$i<$_SESSION["x"]+1;$i++)
{
?>

<tr>
   <td><?php echo $_SESSION['carrito']['i'][0]  ?> </td> 
   <td><?php echo $_SESSION['carrito']['i'][1] ?>  </td>
   <td><?php echo $_SESSION['carrito']['i'][2] ?>  </td>   
<tr>
//También he probado poner [$i] en vez de ['i'] y todo igual
Si, se trata de un array de dos dimensiones para un carrito. La $i seria el indice del producto, y el 0,1,2 són valores con el id, nombre y precio del producto. El problema es que este 'echo' NO MUESTRA NADA, incluso a sabiendas que en la posición...
$_SESSION['carrito'][0][0]
...hay algo dentro que yo he intrucido previamente (y he comprovado que está). Si $i pasa por 0 no muestra nada, en cambio si pongo directamente 0 sí que funciona. Que diferencia hay entre $i=0 y 0???? Me estoy volviendo loco con esto y necesito una variable incremental que recorra los productos, no un numero fijo!!.

Muchas gracias por gastar vuestro tiempo en mi mensaje y un saludo

Última edición por jdominguez; 28/08/2005 a las 07:56 Razón: Edito para ampliar la información
  #2 (permalink)  
Antiguo 28/08/2005, 08:30
Avatar de TCL_ZIP  
Fecha de Ingreso: noviembre-2003
Ubicación: Esporles, Mallorca, España
Mensajes: 690
Antigüedad: 14 años
Puntos: 4
prueba asi:
<?php echo $_SESSION['carrito'][$i] ?>
  #3 (permalink)  
Antiguo 28/08/2005, 09:08
 
Fecha de Ingreso: marzo-2005
Ubicación: Sevilla
Mensajes: 277
Antigüedad: 12 años, 9 meses
Puntos: 2
umm, yo te recomendaria lo siguiente:
<?php
$variable=$_SESSION["x"];
$variable++;

for($i=0;$i<$variable;$i++)
{
echo "<tr><td>" . $_SESSION['carrito']['$i'][0] . "</td>";
echo "<td>" . $_SESSION['carrito']['$i'][1] . "</td>";
echo "<td>" . $_SESSION['carrito']['$i'][2] . "</td><tr>";
}
?>

no creo que debas cerrar el script php a mitad de un for como tu haces:
for($i=0;$i<$_SESSION["x"]+1;$i++)
{
?> //---> cierras el script sin hacer nada en el for.
Y otra cosa; Por supuesto que que debes poner $i en vez de i, las variables en php siempre llevan $ delante, noe s como en javascript o asp que las declaras con var o dim y ya el nombre va solo, Aqui siempre va con $ delante para todo.
Un saludo
  #4 (permalink)  
Antiguo 28/08/2005, 09:42
 
Fecha de Ingreso: agosto-2005
Mensajes: 4
Antigüedad: 12 años, 3 meses
Puntos: 0
Gracias por vuestra ayuda.

TCL, el vector es de dos dimensiones, tu dices que ponga <?php echo $_SESSION['carrito'][$i] ?> [igualmente lo he probado]

Manu_Leon, he probado este código que me indicas. Quizás tengo la mala costumbre de hacer los "for" de esta forma pero siempre me han funcionado. Igualmente lo he puesto a tu manera y sigue sin funcionar. También he cambiado lo de $variable, pero es que las pasadas las hace bien, si por ejemplo tengo 3 productos en el carrito hace 3 pasadas por el 'for', tanto con tu código cómo con el mio anterior (lo pruebo haciendo un echo 'hola' y efectivamente sale 3 veces;) pero donde ha de salir el valor de la matriz no sale nada. La verdad es que estoy desesperado.

Un saludo y gracias por vuestra paciencia
  #5 (permalink)  
Antiguo 28/08/2005, 10:30
Avatar de compositor19  
Fecha de Ingreso: junio-2005
Ubicación: Zaragoza
Mensajes: 215
Antigüedad: 12 años, 5 meses
Puntos: 2
prueba con esto....

Código PHP:

<?php
for($i=0;$i<($_SESSION['x']+1);$i++)
{

echo 
$_SESSION['carrito'][$i]."<br>";
     


?>
__________________
php user ;)
  #6 (permalink)  
Antiguo 28/08/2005, 11:56
 
Fecha de Ingreso: agosto-2005
Mensajes: 4
Antigüedad: 12 años, 3 meses
Puntos: 0
emm..

El array es bidimensional [pero bueno, igualmente no funciona]
  #7 (permalink)  
Antiguo 28/08/2005, 12:04
 
Fecha de Ingreso: junio-2005
Mensajes: 981
Antigüedad: 12 años, 6 meses
Puntos: 2
Hola, mira tiene que tener solución a esto, porque no usas un vardump($mi_array) y muestras lo que imprime.

Saludos.
  #8 (permalink)  
Antiguo 28/08/2005, 13:18
 
Fecha de Ingreso: agosto-2005
Mensajes: 4
Antigüedad: 12 años, 3 meses
Puntos: 0
Lo He Conseguido

Budario no conocía esa función, pero me ha sido de gran ayuda. Lo he conseguido, después de haber hecho 100.000 pruebas y entre nosotros, la prueba que finalmente ha funcionado, ya la había hecho ayer... ¡¡¡OS LO ASEGURO!!! Pero las máquinas no se equivocan...

Pues bien, resulta que había que rellenar la matrix de la siguiente forma:
$_SESSION['carrito'][$_SESSION['x']][0]=$prodid;

X era variable de sesión y yo la ponía como si fuera normal. Pero ya os digo, era tan obvio q esta prueba la hice ayer, pero algo mío fallaría.

Gracias por vuestra ayuda

Última edición por jdominguez; 28/08/2005 a las 13:31 Razón: Añadir cosas
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 11:41.