Foros del Web » Programando para Internet » PHP »

Bucle for, no incrementa

Estas en el tema de Bucle for, no incrementa en el foro de PHP en Foros del Web. Hola como estan? Miren mi codigo @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original $f = isset ( $_GET [ 'f' ] ) ? $_GET [ 'f' ...
  #1 (permalink)  
Antiguo 18/05/2012, 00:39
Avatar de hysteri_a_lex  
Fecha de Ingreso: junio-2011
Ubicación: Mexico City, Mexico, Mexico
Mensajes: 11
Antigüedad: 12 años, 10 meses
Puntos: 0
Bucle for, no incrementa

Hola como estan?

Miren mi codigo

Código PHP:
Ver original
  1. $f = isset($_GET['f']) ? $_GET['f'] : 'expimp';
  2. $s = isset($_GET['s']) ? $_GET['s'] : 'imp';
  3.  
  4. $iten = file_get_contents('/json/listIten.php?expimp=imp&f='. $f . '&s=' . $s);
  5. $iten = json_decode($iten);
  6. $tmp = <<<EOPAGE
  7.     <tr>
  8.         <td><button class="btn btn-mini" title="Ver detalles"><i class="icon-eye-open"></i></button></td>
  9.         <td>{origen}</td>
  10.         <td>{puerto}</td>
  11.         <td>{buque}</td>
  12.         <td>{salida}</td>
  13.         <td>{cierredoc}</td>
  14.         <td>{frecuencia}</td>
  15.         <td>{transito}</td>
  16.         <td>{conexiones}</td>
  17.     </tr>
  18. EOPAGE;
  19.  
  20.     for ($i = 0; $i < count($iten); $i++){
  21.         $t = $iten[$i];
  22.         $tmp = str_replace('{origen}', $t->origen, $tmp);
  23.         $tmp = str_replace('{puerto}', $t->puerto, $tmp);
  24.         $tmp = str_replace('{buque}', $t->buque, $tmp);
  25.         $tmp = str_replace('{salida}', $t->salida, $tmp);
  26.         $tmp = str_replace('{origen}', $t->origen, $tmp);
  27.         $tmp = str_replace('{cierredoc}', $t->cierredoc, $tmp);
  28.         $tmp = str_replace('{frecuencia}', $t->frecuencia, $tmp);
  29.         $tmp = str_replace('{transito}', $t->transito, $tmp);
  30.         $tmp = str_replace('{conexiones}', $t->conexiones, $tmp);
  31.  
  32.         echo $tmp;
  33.     }

Si notan el bucle for, anda bien, lo unico que el contador $i no incrementa, siempre conserva el valor de 0 y entonces me imprime como 20 veces (lo que va del bucle) pero con los mismos datos

Es decir, siempre me regresa algo como esto


Código tabla:
Ver original
  1. uno | dato1
  2. uno | dato1
  3. uno | dato1
  4. uno | dato1
  5. uno | dato1

En lugar de mostrar esto


Código tabla:
Ver original
  1. uno | dato1
  2. dos | dato2
  3. tres | dato3
  4. cuatro | dato4
  5. cinco | dato5

Alguien me podria ayudar con mi problema?
  #2 (permalink)  
Antiguo 18/05/2012, 01:09
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Bucle for, no incrementa

Quieres apostar a que ese contador sí incrementa?

Basta con que pongas echo "$i<br />"; para comprobarlo; de hecho, si no incrementara PHP se quedaría dándole vueltas a ese ciclo.

El problema real es que desde la primera iteración reemplazas el contenido de $tmp, por lo que en las siguientes vueltas ya no existen {origen}, {puerto}, etc.

Código PHP:
Ver original
  1. // Cambia de nombre a tu variable
  2. $codigo = <<<EOPAGE
  3. /* aquí todo tu código */
  4. EOPAGE;
  5.  
  6. for(/* aquí las características de tu for */) {
  7.     $tmp = $codigo;
  8.     /* Aquí todos los str_replace() y el echo */
  9. }
  10. // voilà!!!
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 18/05/2012, 01:13
Avatar de hysteri_a_lex  
Fecha de Ingreso: junio-2011
Ubicación: Mexico City, Mexico, Mexico
Mensajes: 11
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Bucle for, no incrementa

que clase de brujeria es esa???

Ffuncionó!! muchas gracias Triby

Etiquetas: bucle
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 06:50.