Foros del Web » Programando para Internet » PHP »

Problema con arreglos...

Estas en el tema de Problema con arreglos... en el foro de PHP en Foros del Web. Buenas tardes colegas, la situacion es la siguiente... Estoy enviando datos de un producto para cotizacion/presupuesto. Pero resulta q el producto tiene varias, digamos "tallas"... ...
  #1 (permalink)  
Antiguo 20/07/2010, 14:04
Avatar de Heiroon  
Fecha de Ingreso: junio-2010
Ubicación: Caracas, Venezuela - Por ahora...
Mensajes: 495
Antigüedad: 13 años, 11 meses
Puntos: 63
Exclamación Problema con arreglos...

Buenas tardes colegas, la situacion es la siguiente...

Estoy enviando datos de un producto para cotizacion/presupuesto. Pero resulta q el producto tiene varias, digamos "tallas"... Entonces genero tantas "tallas" como tenga el producto y este tiene un text donde se indica la cantidad. es mas o menos esto:

Código PHP:
Ver original
  1. <? $ps=mysql_query("Select * From paquete_sis where id_producto='1' ")or die(mysql_error());   
  2.                                 $p=1;
  3.                                 while($paquete=mysql_fetch_row($ps)){
  4.                                         if($i%2==0){
  5.                                             $color= "#FFFFFF";
  6.                                         }else{
  7.                                             $color= "#F1FEFE";
  8.                                         }?>
  9.                                     <tr bgcolor="<?=$color?>" height="30px;" style="vertical-align:middle">
  10.                                        
  11.                                         <td align="center" class="referencia"><?=$paquete[2]?></td>
  12.                                         <td><?=$paquete[3]?></td>
  13.                                         <td align="center"><input type="text" size="2" class="sencillo" name="cantidad_paq[]" id="cantidad_paq<?=$p?>"/></td>
  14.                                        
  15.                                     </tr>
  16.                              <? $i++; $p++; }?>

ok hasta ahi vamos bien... Ahora, digamos q hay 5 "tallas" y envio 3, 1 y 1.. estos tres datos en el arreglo cantidad_paq[]..ok

ahora recibo...

Código PHP:
Ver original
  1. if($_POST['cantidad_paq']!=""){
  2.     extract($_POST);
  3.  
  4.     echo "Cookie: ".$_COOKIE['idc']."<br>";
  5.     echo "ID producto: ".$_POST['idp']."<br>";
  6.  
  7.     $i=0;              
  8.         while($cantidad_paq[$i]){  
  9.        
  10.             echo "cantidad paquete ".$i.": ".$cantidad_paq[$i]."<br>";
  11.            
  12.         $i++;}
  13. }

como resultado final me imprime:

cantidad paquete 0: 3
cantidad paquete 1: 1

y elimina el otro registro (1) q envie.. alguien sabe porq ocurre esto?? gracias!!!
  #2 (permalink)  
Antiguo 20/07/2010, 15:39
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Problema con arreglos...

xq no trabajas con un for o un foreach??
ej:
Código PHP:
$arreglo=$_POST['arreglo'];
foreach(
$arreglo as $id=>$valor)
{
   echo 
"indice ".$id." valor ".$valor;

prueba con eso y ve si te sirve
  #3 (permalink)  
Antiguo 21/07/2010, 09:34
Avatar de Heiroon  
Fecha de Ingreso: junio-2010
Ubicación: Caracas, Venezuela - Por ahora...
Mensajes: 495
Antigüedad: 13 años, 11 meses
Puntos: 63
Exclamación Respuesta: Problema con arreglos...

Cita:
Iniciado por carlos_belisario Ver Mensaje
xq no trabajas con un for o un foreach??
ej:
Código PHP:
$arreglo=$_POST['arreglo'];
foreach(
$arreglo as $id=>$valor)
{
   echo 
"indice ".$id." valor ".$valor;

prueba con eso y ve si te sirve
Mmm no logro captar exactamente q debo poner en $id y en $valor, sinceramente... me puedes explicar un poco?
  #4 (permalink)  
Antiguo 21/07/2010, 10:01
Avatar de Heiroon  
Fecha de Ingreso: junio-2010
Ubicación: Caracas, Venezuela - Por ahora...
Mensajes: 495
Antigüedad: 13 años, 11 meses
Puntos: 63
Exclamación Respuesta: Problema con arreglos...

Bueno, el problema esta es q no puedo usar while porq cuando envio un valor vacio corta el array, use un for y lo hace bien pero necesito q solo tome los campos del arreglo q tienen un valor... con el foreach puedo hacer eso?
  #5 (permalink)  
Antiguo 21/07/2010, 20:16
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
el id es el indice por el que va a ir pasando y el valor va a ser el valor asignado a ese indice si tu imprimes el ejemplo que te di poniendo un arreglo veras lo que te da y asi entenderas algo asi
Código PHP:
$arreglo=array("valor1","valor2");
foreach(
$arreglo as $id=>$valor)
{
   echo 
"el indice es ".$id." el valor es ".$valor."<br/>;

te deberia imprimir:
el indice es 0 el valor es valor1
el indice es 1 el valor es valor2
prueba y veras es sencillo trabajar los arreglos con este ciclo luego q uno lo capta suerte

con respecto a los espacios en blanco xq no lo validas que no se pueda, osea para que necesitas tu espacios en blanco?? no estoy seguro de que los tome en cuenta seria cuestion de revisar o haz algo as un count de tu variable arreglo para ver cuantos te trae ahi vez si te trae los blancos o no suerte

Última edición por GatorV; 21/07/2010 a las 21:37
  #6 (permalink)  
Antiguo 21/07/2010, 21:35
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Problema con arreglos...

Hola
adicional a lo que ya te mencionaron, has probado con do...while en vez de while?
saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com

Etiquetas: arreglos
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:53.