Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL] Podwójne sortowanie
charlie-cherry
post
Post #1





Grupa: Zarejestrowani
Postów: 93
Pomógł: 5
Dołączył: 15.12.2007

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


Mam w sql tabelę w której każdy obiekt ma przypisany tytuł, rodzaj nośnika oraz nazwę zespołu. Chcę je poprzez zapytanie do bazy sql posegregować w php tak:

Zespół 1

Single:
Singiel1
Singiel2
Singiel3

Płyty:
Płyta1
Płyta2
Płyta3

Zespół 2

Single:
Singiel1
Singiel2
Singiel3

Płyty:
Płyta1
Płyta2
Płyta3

itd.

Można to łatwo zrobić "ręcznie" wpisując w html nazwę zespołu, a następnie odpytać bazę pod względem obiektów z nazwą zespołu, użyć switcha by posegregować względem nośnika i gotowe. Jednakże przy kilkunastu różnych zespołach i tylu sanych rodzajach nośników to rozwiązanie jest do niczego. Jak to zrobić poprawnie?

Ten post edytował charlie-cherry 15.07.2008, 21:43:31
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
Liseeeek
post
Post #2





Grupa: Zarejestrowani
Postów: 14
Pomógł: 1
Dołączył: 12.03.2007

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


Nie wiem czy dobrze zrozumiałem ale chyba chodzi Ci o to żeby były 2 warunki sortowania.

SELECT * FROM tabela ORDER BY nazwiasko, imie

Zapytanie sortuje tak:

Biały Barbara
Biały Piotr
Czarny Tomek
Kowalski Darek
Go to the top of the page
+Quote Post
charlie-cherry
post
Post #3





Grupa: Zarejestrowani
Postów: 93
Pomógł: 5
Dołączył: 15.12.2007

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


Rozpisałem to już sobie inaczej, ale dopiero z twoją propozycją zadziałało jak należy.

Zamieszczam, może komuś to pomoże, acz z pewnościąmożna to samo rozpisać bardziej elegancko.

  1. <?php
  2. // po połączeniu z bazą danych
  3. while ($rekord = mysql_fetch_assoc($result))
  4. {$id=$rekord['id'];
  5. $tytul=stripslashes($rekord['tytul']);
  6. $rodzaj_nosnika=stripslashes($rekord['rodzaj_nosnika']);
  7. $rodzaj_zespolu=stripslashes($rekord['rodzaj_zespolu']);
  8.  
  9. if(strcasecmp($ostatniRodzaj1, $rodzaj_zespolu) != 0) {
  10. echo '<h6>';
  11. switch ($rodzaj_zespolu) {
  12. case $rodzaj_zespolu: echo $rodzaj_zespolu; break; 
  13. }
  14. }
  15. echo '</h6>';
  16. $ostatniRodzaj1 = $rodzaj_zespolu;
  17. for ($z=0; $z < count($rekord['rodzaj_nosnika']); $z++) {
  18. if ($rodzaj_test != $rodzaj_nosnika) {echo '<b>'.$rodzaj_nosnika.'</b><br>';} ;}
  19. $rodzaj_test=$rodzaj_nosnika;
  20. echo '<li><a href="dysk.php?edycjaobiektu='.$id.'">'.$tytul.'</a></li>';
  21. }
  22. ?>
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 Aktualny czas: 20.08.2025 - 12:30