Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: $i-- w pętli = zacięcie skryptu
Forum PHP.pl > Forum > Przedszkole
MP1
Skrypt się zacina, gdy istnieje ta instrukcja ELSE i nic się dalej nie dzieje, aż serwer przerwie wykonywanie się.
  1. <?php
  2.  
  3. for($i=0;$i<count($_POST['wys_odp']);$i++)
  4. {
  5.  
  6.  if($_POST['wys_odp'][$i]!=NULL && !empty($_POST['wys_odp'][$i])) {
  7.  
  8.   $w_odp[$i]=htmlspecialchars($_POST['wys_odp'][$i],ENT_QUOTES);
  9.   $w_odp[$i]=str_replace(&#092;"\",\"\",$w_odp[$i]);
  10.  
  11.   if($_POST['wysl_ww']==&#092;"t\" || $_POST['gdzie']==\"n\") {
  12.     $f3s_glos[$i]=0;
  13.    }
  14.  
  15.   $dtxt.=&#092;"$f3s_odp[\".$i.\"]='\".$w_odp[$i].\"'; \";
  16.   $gtxt.=&#092;"$f3s_glos[\".$i.\"]='\".$f3s_glos[$i].\"'; \"; }
  17.  
  18.  else { $i--; } } //BŁĄD!
  19.  
  20. ?>

Po usunięciu instrukcji ELSE skrypt wykonuje się (lecz błędnie, bo wycina pola). Potrzebne jest zmniejszenie wartości zmiennej $i. Jak to zrobić?
sf
petla sie nigdy nie konczy... u gory dodajesz, a potem w else zmniejszasz to jak ma sie petla skonczyc? smile.gif
MP1
Co mi w takim razie radzicie zrobić? Jak pole jest puste, nie może być tak:

  1. <?php
  2. $tablica[0]=&#092;"...\";
  3. $tablica[1]=&#092;"...\";
  4. $tablica[3]=&#092;"...\";
  5. ?>
Majdan
Chdzi to, że jeżeli warunek nie zostanie spełniony pętla się nie skończy... tongue.gif
aleksander
Przeniesione php => php Początkujący
MP1
Mam już rozwiązanie. Użyłem drugiej zmiennej. Na początku ma wartość -1. Gdy pole nie jest puste, zwiększa wartość o 1 ($ix++).
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.