Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Funkcja pomiń?
Forum PHP.pl > Forum > Przedszkole
iqique
Czy istnieje w php jakaś funkcja, która pozwoliła by mi na nie wykonanie jednego polecenia w pętli jeśli zostanie spełniony jakiś warunek? Coś na styl nie wykonuj w pętlli jeśli $zmienna=1.


Dziękuję za pomoc.
Piogola
  1. if($zmienna==1) break;
hieroshima
nie bardzo rozumiem co chcesz zrobić, ale jeżeli masz pętle i nie chcesz aby ta pętla się wykonała gdy np $zmienna=1 to dajesz do tej petli warunek if ($zmienna==1) break; else ..... wtedy wyskioczy CI z tej petli jezeli warunek jest prawdziwy. Lub poprostu skorzystaj z pętli while, alob do..while one się wykonują dopuki warunek jest prawdziwy czyli pętla będzie się wykonywać dopuki $zmienna!=1
iqique
Opiszędokładnie problem.

mam taki kod:

  1. $resResult = mysql_query( "SELECT * FROM magazyn where nrkonta=$wlasciciel" );
  2. $arrRow = mysql_fetch_array( $resResult, MYSQL_ASSOC );
  3.  
  4. foreach( $arrRow as $strKey => $strValue )
  5. {
  6. if(empty($_POST[$strKey])==0);
  7.  
  8. if($_POST[$strKey] <= $strValue){
  9.  
  10. $odejmowanie1=$strValue-$_POST[$strKey];
  11. $operacja1=mysql_query( "update magazyn set $strKey=$odejmowanie1 where id=$wlasciciel" );
  12. }
  13.  
  14. }
  15.  
  16.  
  17. $resResult = mysql_query( "SELECT * FROM sklep where nrkonta=$wlasciciel" );
  18. $arrRow = mysql_fetch_array( $resResult, MYSQL_ASSOC );
  19.  
  20. foreach( $arrRow as $strKey => $strValue )
  21. {
  22. if(empty($_POST[$strKey])==0);
  23.  
  24. if($_POST[$strKey] <= $strValue){
  25. $dodawanie1=$strValue+$_POST[$strKey];
  26. $operacja2=mysql_query( "update sklep set $strKey=$dodawanie1 where id=$wlasciciel" );}
  27.  
  28.  
  29. }



Pobieram sobie z tabeli magazyn wartości i wykonuję na nich operację odejmowania wartości przesłanych postem. Zapisuje do bazy magazyn wynik odejmowania. Następnie pobieram dane z tabeli sklep i dodaję wartość przesłaną postem. Wszystko pięknie jednak nie mogę sobie poradzić z sytuacją kiedy w tabeli wartość początkowa wynosi zero. Skrypt i tak się wykonuje i dodaje do bazy wartość przesłaną postem. Próbowałem tu różnych kombinacji z ifami ale nie cholery mi nie idzie. Chodzi o to żeby pominąć wykonywanie zapisu do bazy w sytuacji kiedy wartość początkowa w bazie wynosi zero.
hieroshima
zamknij to w warunku, który sprawdza wartość początkową. Jeżeli wartość początkowa będzie 0 dajesz break; a w else dajesz cala operacje, która ma się wykonać jeżeli wartość jest != 0
iqique
Rozumiem i tak próbowałem tylko proszę o podpowiedź w którym miejscu miałby się znaleźć. Od godziny nad tym główkuję i wiem, że to banalne, ale tak jestem zciśnieniowany, że mam mętlik w głowie:)
hieroshima
Spróbuj zamienić to:
  1. if(empty($_POST[$strKey])==0);


na to:
  1. if($_POST[$strKey]==0)
  2. break;
  3. else
  4. {
  5. if($_POST[$strKey] <= $strValue){
  6.  
  7. $odejmowanie1=$strValue-$_POST[$strKey];
  8. $operacja1=mysql_query( "update magazyn set $strKey=$odejmowanie1 where id=$wlasciciel" );
  9. }
  10. }
mat-bi
Zastanawiam się, po co tak kombinujecie. Nie lepiej samo

  1. if(!empty($_POST[$strKey])


bez else? Czytelniej i łatwiej zrozumieć.

EDIT:

Albo jeszcze jedno - nie łatwiej isset niż empty ?
iqique
Ok. Idąc dalej. W jaki sposób nie pozwolić kolejnej pętli na zapis w drugiej tabeli jeśli odpowiadający jej wpis w pierwszej tabeli wynosi zero?
hieroshima
w ten sam sposób
iqique
Tylko że druga pętla sprawdza wartości w drugiej tabeli. Więc sprawdzi czy w drugiej tabeli nie ma zera.
mat-bi
Człowieku, do kursu!
iqique
Dziękuję za pomoc.
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.