Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Odczyt danych z bazy., Odczyt danych z 2 powiązanych ze sobą tabel.
AniaR
post
Post #1





Grupa: Zarejestrowani
Postów: 92
Pomógł: 0
Dołączył: 6.05.2009
Skąd: warszawa

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


Witam,

Majac 2 tebele w bazie:

Kategorie (id, nazwa)
Zdjecia (id, id_kategorii, sciezka)

Chcialabym odczytac dane z tabel by wyswietlaly sie nastepujaco:

JAKAS NAZWA KATEGORII 1
zdjecie1
zdjecie2
..
zdjecieN

JAKAS NAZWA KATEGORII 2
zdjecie1
zdjecie2
..
zdjecieN


......

JAKAS NAZWA KATEGORII N
zdjecie1
zdjecie2
..
zdjecieN



Zrobilam to w ten sposob ze najpierw wyswietlam nazwy wsyztskich kategorii:
JAKAS NAZWA KATEGORII 1
JAKAS NAZWA KATEGORII 2
...
JAKAS NAZWA KATEGORII N

a po nacisnieciu na ktoras z nazw, w adescie url przekazuje zmienna z id tej kategorii i nastepnie pobieram z bazy zdjecia ktore spelniaja warunek: id_kategorii = $id
W ten sposob wyswietlam zdjecia z danej kategorii. Jednak wyswietlam wtedy tylko jedna grupe zdjec z jednej kategorii.

Jednaj mi zalezy by wyswietlic na raz wszytskie zdjecia ktore sa w bazie posegregowane kategoriami, a dodatkowo nad kazda z grup zdjec nazwe kategori do ktorej nalezą.
Czy ktos moze dac mi wskazowke jak ulozyc pytanie badz pytania by wyswietlic dane w taki sposob jaki potrzebuje??
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
kirex
post
Post #2





Grupa: Zarejestrowani
Postów: 16
Pomógł: 4
Dołączył: 3.03.2008

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


Możesz zrobić to na 2 sposoby, wyciągając najpierw kategorie i później do nich zdjęcia:

  1. <?php
  2. $kategorieSql = mysql_query('select * from Kategorie order by nazwa asc');
  3.  
  4. while($kategoria = mysql_fetch_assoc($kategorieSql)) {
  5.  
  6.   echo $kategoria['nazwa'] . '<br>';
  7.  
  8.   $zdjeciaSql = mysql_query('select * from Zdjecia where id_kategorii = ' . $kategoria['id']);
  9.   while($zdjecie = mysql_fetch_assoc($zdjeciaSql)) {
  10.      echo $zdjecie['sciezka'] . '<br>';
  11.   }
  12.  
  13. }
  14. ?>


lub ciągnąć wszystko razem i w php sobie rozbić

  1. <?php
  2. $kategorieZdjeciaSql = mysql_query('select k.nazwa, z.* from Kategorie k inner join Zdjecia z on k.id = z.id_kategorii order by k.nazwa asc');
  3.  
  4. $kategoria = null;
  5.  
  6.  while($kategorieZdjecia = mysql_fetch_assoc($kategorieZdjeciaSql )) {
  7.  
  8.   if($kategoria != $kategorieZdjecia['nazwa']) {
  9.      $kategoria = $kategorieZdjecia['nazwa'];
  10.      echo $kategorieZdjecia['nazwa'] . '<br>';
  11.   }
  12.  
  13.   echo $kategorieZdjecia['sciezka'] . '<br>';
  14.  }
  15. ?>


jedno i drugie powinno działać poprawnie, chociaż lepszym wyjściem jest 2 opcja ponieważ ma tylko jedno zapytanie do bazy
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: 24.12.2025 - 22:23