Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP/MYSQL] Wyświetlanie pogrupowanych wartości rekordów
Forum PHP.pl > Forum > Przedszkole
Kostek.88
Witam,
chciałem zrobić galerię zdjęć.

Mam taką oto tabelę w bazie danych:
Kod
+----+--------------+----------------+---------------+----------+-----------+----------+----------+
| id | name         | podpis_pl      | podpis_en     | grupa_pl | grupa_en  | grupa_id | position |
+----+--------------+----------------+---------------+----------+-----------+----------+----------+
|  1 | zdjecie1.jpg | ?adne zdj?cie  | Pretty photo  | grupa 1  | group 1   |        1 |        1 |
|  2 | zdjecie2.jpg | ?adne zdj?cie2 | Pretty photo2 | grupa 1  | group 1   |        1 |        2 |
|  3 | zdjecie3.jpg | Zdj?cie 3      | Zdj?cie 3_en  | aaaaaa   | aaaaaa_en |        2 |        1 |
|  4 | zdjecie3.jpg | zdjecie3.jpg   | Zdj?cie 3_en  | aaaaaa   | aaaaaa_en |        2 |        2 |
+----+--------------+----------------+---------------+----------+-----------+----------+----------+

podpis_pl i podpis_en - to podpis do zdjęcia, które będzie wyświetlane. (po polsku i angielsku)
grupa_pl i grupa_en - nazwa grupy, w której będzie zdjęcie (po polsku i angielsku)
grupa_id - to id tej grupy, w której będzie zdjęcie (bo grupa będzie rozpoznawana po id)
position - będzie układać zdjęcia w odpowiedniej kolejności.

I teraz tak: galeria będzie podzielona na różne grupy, w której będą osobne zdjęcia.
W powyższym przykładzie zdjęcie o id=1 i id=2 będzie w jednej grupie, a dwa pozostałe w drugiej (spójrzcie na pole grupa_id)

Moje pytanie brzmi: jak sformułować zapytanie, by to się tak ułożyło? 2 pętle while zagnieżdżone w sobie nie kolejkują tego... moglibyście mnie jakoś naprowadzić? Będę wdzięczny za pomoc.
piotrooo89
nie wiem czy dobrze rozumiem ale może tak:

  1. <?php
  2. $sql1 = 'SELECT * FROM tabela WHERE grupa_id=1';
  3. //pentelka while odczytująca wyniki
  4.  
  5. $sql2 = 'SELECT * FROM tabela WHERE grupa_id=2';
  6. //2 pentelka odczytujaca wyniki z $sql2
  7. ?>
Kostek.88
Ale baza danych będzie elastyczna, modyfikowalna i miniuaturki zdjęć mają się ładować na jednej stronie, np.
Kod
nazwa grupy 1

      zdjęcie | zdjęcie | zdjęcie | zdjęcie | zdjęcie | zdjęcie | zdjęcie |


nazwa grupy 2

       zdjęcie | zdjęcie | zdjęcie | zdjęcie | zdjęcie | zdjęcie | zdjęcie |


nazwa grupy 3

       zdjęcie | zdjęcie | zdjęcie | zdjęcie | zdjęcie | zdjęcie | zdjęcie |
piotrooo89
no więc wrzucasz do tabelek (div'ów) kazda grupę i ona Ci będzie wyświetlać robisz w pentelce to wszystko.
Kostek.88
Ale nie moge sztywno określać numerów id, muszą one być automatycznie pobierane z bazy, zatem Twoją pętelkę trzeba objąć kolejną, i właśnie tutaj nie wiem jakie zapytanie zrobić

Kod
mysql_query('SELECT * FROM GALERIA ASC WHERE=    ?questionmark.gif (nie wiem co)  ORDER BY position ');



EDIT:
Już wiem jak to zrobic:

  1. <?php
  2. while($grupa=mysql_fetch_array($grupa_query)) {
  3. echo '<p class="naglowek">nazwa_grupy</p>';
  4. $id=$grupa['grupa_id'];
  5. $zdjecie_query=mysql_query('SELECT * FROM GALERIA WHERE grupa_id='.$id);
  6. while($zdjecie=mysql_fetch_array($zdjecie_query)) {
  7. zdj&#281;cia
  8. }
  9.  }
  10. ?>


napisałem to schematycznie, więc nie zwracajcie uwagi na błędy, że nie ma echo itd.

Dzięki za pomoc
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.