Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Zmienna liczba elementów/pól w obiekcie php
Forum PHP.pl > Forum > Przedszkole
skleps
Właśnie zacząłem projektować w głowie pewien systemik, na potrzeby przykładu powiedzmy że to faktury.
Tak więc "faktura" ma pewne pola stałe takie jak nazwisko, adres, nip itd.
Ale ma też takie pola jak poszczególne towary i ich ceny, a z góry nie wiemy ile ich będzie (tych towarów).
Rozpisanie tego na tabele mysql i zaprogramowanie strukturalnie to banał,
ale zacząłem się zastanawiać, jak zaprojektować obiekt, który będzie miał w sobie te stałe pola, jak również zmienną ilość pól dla towarów.

Więc pytanie:
Jak zrobić pojedynczy obiekt, żeby mógł zawierać w sobie zmienną liczbę pól (czyli dowolną liczbę towarów i ich cen)?
kylu31
myśle ,że lepiej będzie użyć 2 baz.
Faktury
ID | Nazwa | nazwisko | nip | adres | towary |

Towary
ID | ID_Faktury | Nazwa | Cena

i połącz ze sobą te 2 pola i zrób jakieś wyświetlanie np.

Wyświetlanie faktury
Wyświetlanie towarów jeśli 'ID_Faktury' jest równe z 'ID' faktury

Sorka że tak to napisałem ale nie potrawie tłumaczyć. Mam nadzieje ,że pomogło =]
IProSoft
Ewentualnie jeśli towary będą zmienne i nie chcesz ich trzymać w bazie(choć to najlepsze rozwiązanie) możesz wrzucać do tablic:
  1. $towary = array(
  2. 'towar1' => array(
  3. 'cena' => 10,
  4. 'ilosc' => 10,
  5. ),
  6. 'towar2' => array(
  7. 'cena' => 10,
  8. 'ilosc' => 10,
  9. )
  10. )
skleps
Cytat(kylu31 @ 29.05.2012, 17:28:28 ) *
myśle ,że lepiej będzie użyć 2 baz.


Dzięki za zaangażowanie, ale napisałem że wiem jak to rozpisać na tabele mysql smile.gif

Chodzi mi o to, że chcę żeby z bazy odczytywał i przechowywał te dane obiekt,
i rozchodzi się o to jak zrobić ten pojedynczy obiekt smile.gif

Czyli chodzi o skonstruowanie klasy podobnej do:

  1. class FakturaBD
  2. {
  3. var $nazwa;
  4. var $ulica;
  5. var $nip;
  6. ...
  7. i tutaj jakoś stworzyć obszar, żeby przechowywać odczytane z bazy dane o towarach w tej fakturze
  8. }


Cóż, ja nic innego jak tablica nie wymyśliłem, a skoro nikt inny nie podrzuca pomysłu to zapewne jedyna możliwość,
czyli muszę zrobić w strukturze klasy pole np. Towary, które de facto będzie tablicą zawierająca towar, jego cenę itp.
Oczywiście przy założeniu, że w ogóle tablicę można włożyć do klasy smile.gif
d3ut3r
Wydaje mi się, że najlepiej zrobić to tak: faktura to jeden obiekt a produkt to drugi obiekt, tak więc faktura zawiera w sobie produkty może to być tablica obiektów typu produkt.
skleps
Cytat(d3ut3r @ 30.05.2012, 18:08:44 ) *
Wydaje mi się, że najlepiej zrobić to tak: faktura to jeden obiekt a produkt to drugi obiekt, tak więc faktura zawiera w sobie produkty może to być tablica obiektów typu produkt.


Można, ale chciałem to "trzasnąć" jednym obiektem smile.gif
Skoro mam mieć w jednym obiekcie tablicę innych obiektów, to równie dobrze mogę w tym obiekcie mieć tablicę zawierającą interesujące mnie dane smile.gif
d3ut3r
Jasne, można nawet nie robić obiektów smile.gif moim zdaniem jeżeli chcesz to zrobić obiektowo to warto produkt również przedstawić jako obiekt.
skleps
Cytat(d3ut3r @ 30.05.2012, 18:12:42 ) *
Jasne, można nawet nie robić obiektów smile.gif


Wiem smile.gif od razu napisałem w pierwszym poście, że strukturalnie to banał smile.gif

Cytat(d3ut3r @ 30.05.2012, 18:12:42 ) *
moim zdaniem jeżeli chcesz to zrobić obiektowo to warto produkt również przedstawić jako obiekt.


A mnie zaczęło zastanawiać, jak to można zrobić w jednym obiekcie, zamiast w serii obiektów.
Przy przekazywaniu obiektu między stronami pojedynczy obiekt ładnie się zserializuje i nie trzeba będzie co strona odwoływać się do bazy.
A mając już tych obiektów "n" łatwiej będzie zasadzić jakiś babolec i wyjdą kwiatki na np. 10tej stronie smile.gif

To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.