Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP/MYSQL] Wyświetlanie pogrupowanych wartości rekordów, galeria zdjęć
Kostek.88
post 8.05.2008, 10:56:25
Post #1





Grupa: Zarejestrowani
Postów: 376
Pomógł: 47
Dołączył: 23.08.2007
Skąd: Warszawa

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


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.

Ten post edytował Kaloryfer 8.05.2008, 10:57:01
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
piotrooo89
post 8.05.2008, 11:01:10
Post #2


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




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. ?>


Ten post edytował piotrooo89 8.05.2008, 11:01:50


--------------------
Go to the top of the page
+Quote Post
Kostek.88
post 8.05.2008, 11:04:12
Post #3





Grupa: Zarejestrowani
Postów: 376
Pomógł: 47
Dołączył: 23.08.2007
Skąd: Warszawa

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


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 |
Go to the top of the page
+Quote Post
piotrooo89
post 8.05.2008, 11:05:59
Post #4


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




no więc wrzucasz do tabelek (div'ów) kazda grupę i ona Ci będzie wyświetlać robisz w pentelce to wszystko.


--------------------
Go to the top of the page
+Quote Post
Kostek.88
post 8.05.2008, 12:29:16
Post #5





Grupa: Zarejestrowani
Postów: 376
Pomógł: 47
Dołączył: 23.08.2007
Skąd: Warszawa

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


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

Ten post edytował Kaloryfer 9.05.2008, 11:38:58
Go to the top of the page
+Quote Post

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 - 10:00