Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Dwie metody w klasie korzystające z jednego połączenia bazy danych ?
Mefiuu
post 12.06.2014, 15:11:20
Post #1





Grupa: Zarejestrowani
Postów: 371
Pomógł: 18
Dołączył: 23.11.2008

Ostrzeżenie: (0%)
-----


Witam. Napisałem sobie dwie metody w klasie, które mają pobierać mi pewne dane z bazy MySQL. Dane są tak zorganizowane, że są powiązane jedną kolumną. Chcę sobie wyświetlić te dane, więc stworzyłem pierwszą metodę, która mi pobiera jakby 'dane główne'. Wyświetlam je w pętli, a następnie w tej samej pętli tak jakby przy każdej iteracji wywołuję kolejną metodę, która ma się łączyć z bazą danych i pobierać dane powiązane z konkretnym ID z konkretnej iteracji. No i tu gdzieś mam błąd, bo wyrzuca mi niestworzone ilości danych, których być nie powinno. Coś zdecydowanie jest w tej pętli, bo jak 'sztywno' przypiszę ID i przekażę je do drugiej metody poza pętlą to pobiera mi ładnie to co chcę ... Da się jakoś obsłużyć takie połączenie do bazy danych ?

metoda 1:

  1.  
  2. public function get_data() {
  3. $stmt = $this->pdo->query("SELECT * FROM `data` ORDER BY `id`, `order`");
  4.  
  5. while ($resource = $stmt->fetch(PDO::FETCH_ASSOC)) {
  6. $this->data[] = $resource;
  7. }
  8.  
  9. $stmt->closeCursor();
  10.  
  11. return $this->data;
  12. }
  13.  


metoda 2:

  1. public function get_another($id) {
  2. $st = $this->pdo->prepare("SELECT * FROM `data` WHERE `id` = :id");
  3.  
  4. $st->bindValue(':id', $id, PDO::PARAM_INT);
  5.  
  6. $st->execute();
  7.  
  8. while ($resource = $st->fetch(PDO::FETCH_ASSOC)) {
  9. $this->another[] = $resource;
  10. }
  11.  
  12. $st->closeCursor();
  13. }


i wywołanie:

  1. foreach ($main->data as $data) {
  2. if ($data['id_parent'] == 0)
  3. echo $data['name'];
  4.  
  5. $main->get_another($data['id']);
  6.  
  7. foreach ($main->another as $another) {
  8. echo "  ".$another['name']."<br />";
  9. }
  10. }



błędu składniowego nie ma, jeśli tu się wkradła literówka to proszę ją odpuścić, bo u mnie kod działa, ale niepoprawnie.

Z góry dziękuję za pomoc.

Pozdrawiam !

Ten post edytował Mefiuu 12.06.2014, 15:12:15
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 18:24