Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem w pętlą for
Forum PHP.pl > Forum > PHP
cichy19-
Witam

Używam poniższego kodu i coś jest nie tak.
Powinno być wykonywane co 25 a robi się tylko raz.

  1. <?php
  2. for ($i=0; ; $i=$i+25) {
  3. $p++;
  4. $versja = array('user-id' => $allegro_user,
  5. 'webapi-key' => $webapikey,
  6. 'country-id' => 1,
  7. 'offset' => $i);
  8. $pktapi = $soapclient->call('doGetUserItems', $versja);
  9. echo '<hr>Partia '.$p.' - '.count($pktapi['user-item-list']).'<hr>';
  10. print_r($pktapi);
  11. if (count($pktapi['user-item-list'])!=25) break;
  12. }
  13. ?>
kossa
tu był błąd:

  1. <?php
  2. for ($i=0; $i<=25; $i++) 
  3. {
  4. //reszta kodu
  5. }
  6. ?>


Łukasz

edit
zapomniałem o BBcode :-)
dr_bonzo
~Kossa -- czytaj, ma sie wykonywac co 25 czyli $i+= 25 a na koncu masz breaka

~cichy19- -- a warunek
  1. <?php
  2. if (count($pktapi['user-item-list'])!=25) break;
  3. ?>

nie jest przypadkiem spelniony?
macbirdie
W ogóle lepiej by było tutaj użyć do-while, bo for zaciemnia nieco kod, gdy nie korzystasz z niego tak jak bozia kazała. winksmiley.jpg

  1. <?php
  2. $i=0;
  3.  
  4. do {
  5. $p++;
  6. $versja = array('user-id' => $allegro_user,
  7. 'webapi-key' => $webapikey,
  8. 'country-id' => 1,
  9. 'offset' => $i);
  10. $pktapi = $soapclient->call('doGetUserItems', $versja);
  11. echo '<hr>Partia '.$p.' - '.count($pktapi['user-item-list']).'<hr>';
  12. print_r($pktapi);
  13.  
  14. $i+=25;
  15. }
  16. while( count($pktapi['user-item-list']) < /* lub <= */ 25 );
  17. ?>


Gdy masz tam !=25, pętla będzie wykonywała się tylko w jednym przypadku, chyba że masz to tak zrobione, by utrzymać rozmiar user-item-list przy rozmiarze 25.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.