![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 19.03.2006 Skąd: Wisła Ostrzeżenie: (0%) ![]() ![]() |
Być może gdzieś na forum jest podobny wątek do mojego problemu, ale nie potrafiłem go znaleźć.
Robię optymalną klasę obsługującą stronę operując na bazie danych. Żeby połączyć się z bazą i wybrać tabelę, używam metody tworzenia nowego obiektu. W konstruktorze mam połączenie do bazy danych a w destruktorze mam:
Tutaj mam głównego winowajce:
Tutaj jest problem. Jak mogę dostać dostęp do poszczególnych elementów w tablicy? Jak naprzykład chcę wyświetlić pole 'id'. Wewnątrz klasy to wyświetlałem to poprzez $row['id']; ale nie wiem jak sobie z tym poradzić poza klasą. Do wyświetlenia wszystkich wpisów w bazie można zrobić takie coś:
No ale nie mam pojęcia jak to zrobić inaczej, żeby nie wpisywać monotonnie $row['id']; tylko żeby było to dynamiczne. Dzięki temu mógłbym wykorzystywać tą metodę wiele razy. Jakieś rozwiązania? Rady? Wskazówki? PS. W kodzie mogą się pojawić naleciałości z c++, ale to musicie mi wybaczyć na początek (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 19.03.2006 Skąd: Wisła Ostrzeżenie: (0%) ![]() ![]() |
Do czego takiego dokładnie zmierzam (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
Czyli masz klase odpowiedzialną tylko za połączenie do bazy i zapytania? A jak według Ciebie... Lepiej tworzyć obiekt i łączyć się z bazą w konstruktorze klasy, czy lepiej staycznie odwoływać się poprzez scope operator :: do metody klasy odpowiedzialnej za połączenie? Ten post edytował _bezimienny 3.07.2008, 11:25:56 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 374 Pomógł: 149 Dołączył: 1.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
Czyli masz klase odpowiedzialną tylko za połączenie do bazy i zapytania? Wykonanie zapytania, obsługę błędów połączenia z bazą oraz np zliczanie rekordów. Jednym słowem wszystko to co nie zależy od konstrukcji zapytania. A jak według Ciebie... Lepiej tworzyć obiekt i łączyć się z bazą w konstruktorze klasy, czy lepiej staycznie odwoływać się poprzez scope operator :: do metody klasy odpowiedzialnej za połączenie? W moich projektach najczęściej robię tak: 1. W konstruktorze klasy nadrzędnej definiuję parametry do połączenia z bazą. 2. W konstruktorze klasy potomnej konstruuję zapytanie w zależności od warunków, czyli paramterów przekazanych do konstruktora, bo tak też się zdarza 3. To zapytanie jest własnością klasy nadrzędnej 4. wykonuję zapytanie metodą, która u mnie nazywa się $this->polaczenie(); i wygląda tak:
5. W ten sposób mam wczytane rekordy do zmiennej $wynik_zapytania, która jest własnością klasy nadrzędnej. Potem w metodzie klasy dziedziczącej sobie to obrabiam jak mi się podoba. Podsumowując. Konstrukcja i wykonanie zapytania odbywa się u mnie najczęściej w konstruktorze klasy dziedziczącej, ale to nie jest reguła, po prostu najczęściej jest to dla mnie wygodne. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 4.10.2025 - 18:43 |