Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]wstrzymanie pętli
hazael
post 4.07.2019, 12:16:34
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 13.04.2010

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


Hej,

mam taki fragment kodu

  1. case '1':
  2. case '2':
  3. return 'bla..'. chr(10);
  4. break;

wynik tego mam taki:
Cytat
bla..
bla..



co zrobić aby dla wybranych 2 pól wynik był tylko dla jednego, lub żeby był po prostu wstrzymany na pierwszym wyniku pętli?
Go to the top of the page
+Quote Post
com
post 4.07.2019, 12:26:25
Post #2





Grupa: Zarejestrowani
Postów: 3 033
Pomógł: 366
Dołączył: 24.05.2012

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


pokaz no cały kod tej funkcji a nie sam fragment wink.gif
Go to the top of the page
+Quote Post
dublinka
post 4.07.2019, 13:09:39
Post #3





Grupa: Zarejestrowani
Postów: 594
Pomógł: 66
Dołączył: 22.02.2008
Skąd: Dublin

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


Cytat(hazael @ 4.07.2019, 12:16:34 ) *
Hej,

mam taki fragment kodu

  1. case '1':
  2. case '2':
  3. return 'bla..'. chr(10);
  4. break;

wynik tego mam taki:



co zrobić aby dla wybranych 2 pól wynik był tylko dla jednego, lub żeby był po prostu wstrzymany na pierwszym wyniku pętli?

W tym przykladzie instrukcja switch() wykona sie tak samo dla parametru 1 i 2. Switch to warunek podobny do if() wiec jesli dajesz instrukcje ze przy parametrach 1 lub 2 ma sie zwrocic 'bla..' jeden raz i to tak sie dzieje. Tylko po co pakowac to do petli tego nie rozumiem.

Ten post edytował dublinka 4.07.2019, 13:14:23


--------------------
Go to the top of the page
+Quote Post
hazael
post 4.07.2019, 13:44:15
Post #4





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 13.04.2010

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


Masz racje, większy fragment kodu ma tu sens. Jest to fragment kodu generujacego w XML produkty ze sklepu
Cytat
Tylko po co pakowac to do petli tego nie rozumiem.
Chyba, się źle określiłem z tą "pętlą" - chodzi mi tylko o to jak zablokować wynik dla pozycji drugiej ;-)
  1. public function ContentText($content, $column_header, $fieldName, $cdata = false)
  2. {
  3. $this->contents = '';
  4.  
  5. switch ($column_header)
  6. {
  7. case 'tax':
  8. $cdata = false;
  9. if ($content == 1){$tax= '5%';} else {$tax= '23%';}
  10. $xml = '<tax>'.$tax.'</tax>'. chr(10);
  11. return $xml;
  12. break;
  13. case 'price':
  14. $cdata = false;
  15. $xml = '<price>'.$content.'</price>'. chr(10);
  16. return $xml;
  17. break;
  18. case 'promo':
  19. $cdata = false;
  20. $xml = '<promo>'.$content.'</promo>'. chr(10);
  21. return $xml;
  22. break;
  23. default:
  24. $this->contents = $content;
  25. break;
  26. }
  27. }


Mój problem to "price" i "promo". W momencie, gdy cena promocyjna jest wylączona, to wyświetla dokładnie ta samą wartość, co "price". Chcę w tym momecie zrobić tak, aby w 'promo" nie wyświetlało się nic. Próbowałem to połączyć jak w poście wyżej i dać wynik na zasadzie różnicy obu wartości, ale w tym momecie wyskakują mi 2 zdublowane wiersze i nie wiem jak to ograniczyć do jednego.

Ten post edytował hazael 4.07.2019, 13:51:42
Go to the top of the page
+Quote Post
dublinka
post 4.07.2019, 13:57:32
Post #5





Grupa: Zarejestrowani
Postów: 594
Pomógł: 66
Dołączył: 22.02.2008
Skąd: Dublin

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


  1. $content, $column_header, $fieldName, $cdata = false

Co zawieraja te zmienne ?

Jesli przesylasz dane get-em np:

costam.php?promo=1 // usluga wlaczona

wtedy w case 'proomo' daj kolejny warunek ze jesli jest 1 to pokaz a else zwroici nic.

Ten post edytował dublinka 4.07.2019, 14:04:04


--------------------
Go to the top of the page
+Quote Post
hazael
post 4.07.2019, 14:07:32
Post #6





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 13.04.2010

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


$content to np cena produktu
$column_header to alias dla nagłówka tabeli $fieldName - czyli <product_price> zamieniany na <price>
$cdata to czy zawartość tagów ma zawierać <![CDATA[]]> czy nie - w zasadzie w tym kodzie jest to bezużyteczne po ręcznej modyfikacji.

Cytat
costam.php?promo=1 // usluga wlaczona


no własnie nigdzie takiej opcji nie ma - przerabiam komponent do Joomla. W sklepie jest tak, że jeśli nadpisze cenę to wyświetla mi sie wartość nadpisana dla $promo, jeśli nie to zostaje podstawowa, taka jak w $price. W samym sklepie system wykrywa to tylko na zasadzie porównania obu wyników - jeśli są różne, to system zwraca, że jest cena promocyjna a w innym przypadku wyświetla tylko jedną cenę. Nie wiem jednak jak to ogarnać tu, bo jak widać jest to generowana lista produktów z różnymi cenami promowanymi lub nie.

Ten post edytował hazael 4.07.2019, 14:22:22
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: 24.04.2024 - 07:51