Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Pobieranie bazy z nazy danych. Dane powiązane
menic
post
Post #1





Grupa: Zarejestrowani
Postów: 493
Pomógł: 0
Dołączył: 14.06.2003
Skąd: Tomaszów Lubelski/Rzeszów

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


Chce pobrac dane z dwóch tabel. Pierwsza to pytania, a następna to odpowiedzi do tych pytan. I nie wiem jak sie do tego zabrac. (IMG:http://forum.php.pl/style_emoticons/default/dry.gif)
Pierwsza mozliwość:
-W pętli wyświetlającej pytania dać zapytanie pobierające odpowiedzi dla aktualnego pytania.
Druga mozliwosc:
-Wczytac odpowiedzi do tablicy i pozniej w peli z pytaniami porownywac.
Trzecia:
?

Pierwsza odpada, bo w szablonie nie dam przeciez zapytania.
Druga chyba tez odpada, bo tablica bedzie miała baardzo dużą wielkość, gdyż nie wiemy ile tych odpowiedzi bedzie.

Jakies sugestie?

BTW. Uzywam propela jezeli to do czegos sie przyda (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Ten post edytował menic 16.01.2007, 19:19:45
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
athabus
post
Post #2





Grupa: Zarejestrowani
Postów: 898
Pomógł: 48
Dołączył: 2.11.2005
Skąd: Poznań

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


Jeśli jest 1 pytanie-> 1 odpowiedź to 1 zapytanie wystarczy w zupełności.

Jeśli natomiast 1 pytaniu odpowiada kilka odpowiedzi to sprawa jest trochę bardziej złożona i będą potrzebne 2 zapytania. Ja akurat mam odpowiednie klasy, które ułatwiają mi odczytywanie takich zapytań.

W skrócie u mnie wygląda to tak:

-> 1 zapytanie w celu odczytania wszystkich pytań, które potrzebujesz

-> 2 zapytanie, które odczytuje właściwe odpowiedzi.

Wczoraj robiłem podobny odczyt dla produtków, które mają pewne własności (typu nazwa cena itp) oraz dodatkowe cechy -> np. kolor itp - każdy produkt może mieć różne cechy i różną ich liczbę.

U mnie wyglądało to mniej więcej tak

  1. <?php
  2. /**
  3.  * Zwraca tablice danych o obiekcie
  4.  *
  5.  * Tablica ma postac
  6.  * [id_produktu] (array)
  7.  *  =>[productData](array)
  8.  *  =>[featuresData](array)
  9.  *  =>[feature 1] (array)
  10.  *  =>...
  11.  *  =>[feature x] (array)
  12.  * 
  13.  * @param array|int $arId
  14.  * @return array
  15.  */
  16. public static function getDataById($arId)
  17. {
  18. //tu są 2 zapytanie zwracają wartość $productRestult o produkcie i $resultFeatures
     cechy produktów - nie zamieszczam zapytan zeby nie gmatwac - bylo kilka joinow itp. bo wyniki byly z roznych tabel
  19.  
  20.  
  21. //przygotowanie tablicy wynikowej - > klucz to id potem tablica skladajaca sie z tablicy
  22. //z info o produkcie oraz tablicy cech.
  23. $resultArray=array();
  24. foreach ($ProductResult as $row)
  25. {
  26. $resultArray[$row['product_id']]=array('productData'=>$row, 'featuresData'=>array());
  27. //dla kazdego nowego produktu tworzymy tablice 2 elementowa z danymi produktu (productData) oraz kolekcja cech ('featuresData') - ta tablica na razie pusta - dodamy cechy w nastepnej petli
  28. }
  29.  
  30. foreach ($resultFeatures as $row)
  31. {
  32. //teraz lecimy po odczytanych cechaach i dodajemy je do glownej tablicy
  33. $resultArray[$row['article_id']]['featuresData'][]=$row;
  34. }
  35.  
  36. return $resultArray;
  37. }
  38. ?>
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 2.10.2025 - 20:01