![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 24.06.2013 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Witam, posiadam taki kod (jak niżej) potrzebuję dodać do niego jeszcze że jeśli będą kategorie z tej drugiej pętli to między nimi nie będzie przecinka tylko |
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 374 Pomógł: 79 Dołączył: 6.04.2010 Skąd: Ostrów Wielkopolski Ostrzeżenie: (0%) ![]() ![]() |
Po części sam już sobie odpowiedziałeś na to pytanie:
jeśli będą kategorie z tej drugiej pętli Problem jest taki, że chcemy zrobić coś (wyświetlić znak) pod warunkiem zajścia zdarzenia, które nastąpi w przyszłości (druga pętla foreach). Tego nie da się zrobić w locie, bo nie jesteśmy w stanie przewidzieć wyniku zdarzenia, które jeszcze nie nastąpiło. Skoro nie w locie, to trzeba najpierw sprawdzić oba warunki, wstępnie przygotować dane i dopiero wyświetlić wynik. Wyrzuć z obu pętli instrukcje drukowania (echo) i zastąp je przypisaniem do innej zmiennej, np. $kategorie_1 i $kategorie_2. A konkretnie, zamiast daj
W drugiej pętli analogicznie z $kategorie_2. No i wcześniej oczywiście zainicjuj te nowe zmienne jako puste łańcuchy ($kategorie_1 = $kategorie_2 = ''). Teraz, po wykonaniu obu pętli sprawdź, czy obie są niepuste, i jeśli tak to wyświetl je wstawiając pomiędzy znak "|":
Jeszcze taka sugestia: zamiast tych długich instrukcji warunkowych sprawdzających obecność danych kategorii spróbuj wykorzystać funkcję in_array, definiując wcześniej dwie tablice z grupami kategorii. Wtedy całą listę warunków będziesz mógł zastąpić prostym:
... a grupami kategorii będziesz mógł elastycznie zarządzać z poziomu tych dodatkowych tablic, a nawet elegancko te tablice definiować z bazy danych. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 17.10.2025 - 07:38 |