![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 66 Pomógł: 0 Dołączył: 14.06.2004 Skąd: Świętochłowice Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Dopiero zaczynam z obiektowym i nie wiem jak ugryźć problem dodawania nowych obiektów do bazy danych. Moje klasy wyglądają tak:
Chciałbym teraz stworzyć nowego pilota (wraz ze wszystkimi danymi wypełniającymi m.in. kolekcje takie jak adresy, telefony itp) oraz dodać to do bazy danych. Nie wiem jak najlepiej się do tego zabrać... ;| Proszę o pomoc i wszelkie sugestie. -------------------- ...albo jesteś zerem albo jedynką ;)
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Jeżeli cały obiekt chcesz dodać do bazy to poczytaj o: serialize" title="Zobacz w manualu PHP" target="_manual i unserialize" title="Zobacz w manualu PHP" target="_manual
-------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 27 Pomógł: 9 Dołączył: 9.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
w tym przypadku wrzucenie całego obiektu do bazy przy pomocy serialize nie jest dobrym pomysłem. Proponuje stworzyć obiekt który będzie odpowiedzialny za dodanie odpowiednich rekordów do bazy danych np. na podstawie otrzymanej referencji do obiektu Pilot w metodzie addPilot(). Dla jasności podam przykładowy kod: class DbPilot { public function __construct() { } public function addPilot(Pilot $os) { //sklejasz zapytanie z danych z obiektu Pilot $sQuery = "INSERT INTO Pilot (nazwa,nip,...itd.) VALUES($os->nazwa,$os->nip,...itd.)"; //kod odpowiedzialny za wykonanie zapytania } } Co do samej bazy danych, jeżeli nie masz jeszcze stworzonej, to proponuje coś takiego: stworzyć tabelke Pilot z polami odpowiadającymi polom z tablicy propertyTable, następnie odpowiednie tabelki dla kolekcji czyli Telephones, Emails itd. Wszystkie wartości poprostu odczytujesz z obiektu klasy Pilot i zawartych w nim kolekcji i zapisujesz do bazy w odpowiednie rekordy. Możesz oczywiście do klasy DbPilot dodać metode do ładowania obiektu: wczytujesz dane z bazy->tworzysz obiekt Pilot->ustawiasz wartośći na podstawie danych z bazy->zwracasz gotowy obiekt. Pozdrawiam Ten post edytował tmka 16.07.2009, 13:35:18 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat w tym przypadku wrzucenie całego obiektu do bazy przy pomocy serialize nie jest dobrym pomysłem Jest pod warunkiem korzystania z interfejsu Serializable. -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
nie wiem jak ugryźć problem dodawania nowych obiektów do bazy danych. Witam, w tym przypadku wrzucenie całego obiektu do bazy przy pomocy serialize nie jest dobrym pomysłem. Skoro prosił to dostał. Proponuje stworzyć obiekt który będzie odpowiedzialny za dodanie odpowiednich rekordów do bazy danych np. na podstawie otrzymanej referencji do obiektu Pilot w metodzie addPilot(). Dla jasności podam przykładowy kod: class DbPilot { public function __construct() { } public function addPilot(Pilot $os) { //sklejasz zapytanie z danych z obiektu Pilot $sQuery = "INSERT INTO Pilot (nazwa,nip,...itd.) VALUES($os->nazwa,$os->nip,...itd.)"; //kod odpowiedzialny za wykonanie zapytania } } Co do samej bazy danych, jeżeli nie masz jeszcze stworzonej, to proponuje coś takiego: stworzyć tabelke Pilot z polami odpowiadającymi polom z tablicy propertyTable, następnie odpowiednie tabelki dla kolekcji czyli Telephones, Emails itd. Wszystkie wartości poprostu odczytujesz z obiektu klasy Pilot i zawartych w nim kolekcji i zapisujesz do bazy w odpowiednie rekordy. Możesz oczywiście do klasy DbPilot dodać metode do ładowania obiektu: wczytujesz dane z bazy->tworzysz obiekt Pilot->ustawiasz wartośći na podstawie danych z bazy->zwracasz gotowy obiekt. Pozdrawiam Ja do dodawania użyłbym klasy, która byłaby potomkiem Pilot.
i tak bym to widział. ;d -------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 27 Pomógł: 9 Dołączył: 9.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
Jest to typowy obiekt przechowujący dane, uważam że lepiej jest zrobić odpowiednie tabelki w bazie niż wrzucać cały obiekt, dzięki temu mamy większe możliwości manewru na zapisanych danych np tworząc jakieś inne obiekty operujące tylko na wybranych danych. Oczywiście jest też minus tego rozwiązania, jeżeli zechcemy dodać nowe właściwości do naszego obiektu, będzie trzeba dodać nowe pola w tabelce(biorąc pod uwage to, że tę właściwość też będziemy chcieli zapisać).
Pozdrawiam. Ten post edytował tmka 16.07.2009, 13:52:21 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 13:12 |