Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Funkcja pomiń?
iqique
post 23.04.2011, 11:56:35
Post #1





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 2.03.2011

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
Piogola
post 23.04.2011, 12:04:13
Post #2





Grupa: Zarejestrowani
Postów: 151
Pomógł: 36
Dołączył: 1.02.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


  1. if($zmienna==1) break;


--------------------
Google Manual
Go to the top of the page
+Quote Post
hieroshima
post 23.04.2011, 12:04:23
Post #3





Grupa: Zarejestrowani
Postów: 83
Pomógł: 6
Dołączył: 4.04.2010

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
Valker
post 23.04.2011, 12:20:49
Post #4





Grupa: Zarejestrowani
Postów: 40
Pomógł: 5
Dołączył: 24.08.2007
Skąd: Łódź

Ostrzeżenie: (0%)
-----


http://algorytmy.pl/doc/php/control-structures.do.while.php
http://php.net/manual/en/control-structures.break.php / http://algorytmy.pl/doc/php/control-structures.break.php
http://www.php.net/manual/pl/control-structures.continue.php / http://algorytmy.pl/doc/php/control-structures.continue.php

Zapoznaj się z tym ;P

Ten post edytował Valker 23.04.2011, 12:22:51
Go to the top of the page
+Quote Post
iqique
post 23.04.2011, 12:26:44
Post #5





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 2.03.2011

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
hieroshima
post 23.04.2011, 12:31:43
Post #6





Grupa: Zarejestrowani
Postów: 83
Pomógł: 6
Dołączył: 4.04.2010

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
iqique
post 23.04.2011, 12:47:03
Post #7





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 2.03.2011

Ostrzeżenie: (0%)
-----


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:)
Go to the top of the page
+Quote Post
hieroshima
post 23.04.2011, 12:57:14
Post #8





Grupa: Zarejestrowani
Postów: 83
Pomógł: 6
Dołączył: 4.04.2010

Ostrzeżenie: (0%)
-----


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. }


Ten post edytował hieroshima 23.04.2011, 13:07:44
Go to the top of the page
+Quote Post
mat-bi
post 23.04.2011, 12:59:08
Post #9





Grupa: Zarejestrowani
Postów: 690
Pomógł: 92
Dołączył: 6.02.2011

Ostrzeżenie: (0%)
-----


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 ?

Ten post edytował mat-bi 23.04.2011, 13:00:56
Go to the top of the page
+Quote Post
iqique
post 23.04.2011, 13:09:44
Post #10





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 2.03.2011

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
hieroshima
post 23.04.2011, 13:14:26
Post #11





Grupa: Zarejestrowani
Postów: 83
Pomógł: 6
Dołączył: 4.04.2010

Ostrzeżenie: (0%)
-----


w ten sam sposób
Go to the top of the page
+Quote Post
iqique
post 23.04.2011, 13:15:37
Post #12





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 2.03.2011

Ostrzeżenie: (0%)
-----


Tylko że druga pętla sprawdza wartości w drugiej tabeli. Więc sprawdzi czy w drugiej tabeli nie ma zera.
Go to the top of the page
+Quote Post
mat-bi
post 23.04.2011, 13:17:35
Post #13





Grupa: Zarejestrowani
Postów: 690
Pomógł: 92
Dołączył: 6.02.2011

Ostrzeżenie: (0%)
-----


Człowieku, do kursu!
Go to the top of the page
+Quote Post
iqique
post 23.04.2011, 13:19:46
Post #14





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 2.03.2011

Ostrzeżenie: (0%)
-----


Dziękuję za pomoc.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 20.06.2025 - 14:56