![]() |
![]() |
![]()
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 ![]() |
Nie, totalnei zle.
Zapomnij o tym if (isset($_POST['size'])) $givenProperties['size'] = $_POST['size']; if (isset($_POST['weight'])) $givenProperties['weight'] = $_POST['weight']; if (isset($_POST['width'])) $givenProperties['width'] = $_POST['width']; if (isset($_POST['height'])) $givenProperties['height'] = $_POST['height']; if (isset($_POST['length'])) $givenProperties['length'] = $_POST['length']; Przeciez ty nei wiesz ze jest property height, width size czy jakakowliek inna. Te dane sa w bazie. A to $types = array('book' => 'weight', 'dvd' => 'size', 'furniture' => array('width', 'height', 'lenght')); porownaj sobie jak wygladalo zbudowane przeze mnie w pierwszym poscie. przeciez ja tam dalem wszedzie tablice, nawet na jeden element, a ty sobie radosnie tablice zamienies na teksty.... I jak juz porownasz to wowczas ta tablice $types ma byc zbudowana na podstawie danych w bazie. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 11.10.2025 - 23:59 |