![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 495 Pomógł: 245 Dołączył: 1.07.2009 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Cześć, zmagam się z pewnym zadaniem, ze z góry narzuconymi regułami. W skrócie to mały, prosty sklepik internetowy, który w całości ma powstać obiektowo. Programowanie proceduralne dozwolone jest tylko do zainicjowania klas. I jedno z wymagań mówi aby unikać konstrukcji warunkowych (if-else oraz switch) do radzenia sobie z różnicami w produktach. Jako że obiektowo programować dopiero się uczę, to nie wiem czy jest może jakieś oczywiste rozwiązanie pozwalające na nieużywanie warunków.
Załózmy, że mam w bazie tabelę PRODUKT z takimi kolumnami oraz danymi: Kod ID | name | typ| MB | ilosc_stron | szerokosc | wysokosc | glebokosc 1 | tetris | dvd | 128 | 0 | 0 | 0 | 0 2 | bilbia | ksiazka | 0 | 1256 | 0 | 0 | 0 3 | stol | mebel | 0 | 0 | 90 | 200 | 60 Jak wdać mam 3 typy produktów (DVD, ksiazka, mebel) i w zależności od tego jaki to typ to odpowiednie kolumny są wypełnione - MB dla dvd, ilosc_stron dla ksiazki i wymiary dla mebli. Zresztą w oddzielnym temacie pytam czy dobrze rozumuję, że tak właśnie powinna baza pod ten cel wyglądać. W każdym razie jak teraz rozróżnić inne akcje do działania na książce, dvd czy meblu kiedy nie mogę zastosować if-else czy switch ? Dzięki. Ten post edytował sadistic_son 15.12.2022, 10:36:08 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 559 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat tylko jak ją zrobić bez użycia konstrukcji warunkowych, bez ifów czy switchy? Troche za bardzo bierzesz to co miales napisane. Bez ifow to miales znalezc wlasciwe pola z POSTa i to juz masz. A zeby zrobic walidacje to nei da sie nie uzywac IFow i tyle. Wiec nie odlatuj za bardzo (IMG:style_emoticons/default/wink.gif) Najlepiej by bylo jakbys do swoich wlasciwosci w bazie dodal jeszcze info o type danych jakie tam mozna wpisac: INT, FLOAT, TEXT i na tej podstawie mozna dokladniej walidowac dane. A jesli nie chcesz tego dodawac to sprawdzaj chociaz czy to nie jest puste Czylu majac swoja tablice properties, lecisz foreach po properties i sprawdzasz empty($_POST[$postIndex]). Jesli ktores jest empty to walisz message i nie przechodzisz do dodawania i cala walidacja. 5 minut roboty. Mozesz jeszcze dodac walidacje na nazwe produktu itp. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 13.10.2025 - 09:05 |