Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql] kilkukrotne sortowanie
Forum PHP.pl > Forum > Bazy danych > MySQL
szczypior
Cześć

Chcę zrobić menu rozwijane do którego nazwy kategorii i podkategorii pobierane są z bazy. Kategorie mają być posortowane alfabetycznie i podkategorie też, czyli

A kategoria
- A podkat
- B podkat
- Z podkat
B kategoria
- A podkat2
- B podkat2
- Z podkat2
itd

Tabela z kategoriami wygląda tak:

| id | nazwa | gl |

id - unikalne id kategorii
gl - jest dany rekord jest "kategorią" to gl zawiera wartość taką jak id (równie dobrze możnaby zrobić nulla jeśli to coś ułatwi), jeśli jest podkategorią to gl zawiera id kategorii dla której jest podkategorią

Problem jest w posortowaniu tego odpowiednio.

Gdy posortuje
  1. SELECT * FROM kat ORDER BY gl, nazwa


to podkategorie są dobrze posortowane, ale jeśli dodam nową kategorię na literę A to znajduje się ona na końcu wszystkich kategorii sad.gif
maciejkiner
Witam

Zamiast gl potrzebujesz wyciagnac nazwe kolumny, cos w stylu:

  1. SELECT t1.*,t2.nazwa AS 'gl_nazwa' FROM kat AS 't1'
  2. JOIN kat 't2' ON t1.gl=t2.id
  3. ORDER BY gl_nazwa, nazwa


Tylko wtedy ta gl musisz pewnie przerobic na NULL. To tylko koncepcja, bo dzis mi mozg ciezko pracuje, ale powinno Cie to naprowadzic smile.gif

pzdr
maciejkiner
mxm
A próbowałeś komendy DESC lub ASC questionmark.gif?
szczypior
Cytat(maciejkiner @ 2.02.2008, 17:48:50 ) *
Witam

Zamiast gl potrzebujesz wyciagnac nazwe kolumny, cos w stylu:

  1. SELECT t1.*,t2.nazwa AS 'gl_nazwa' FROM kat AS 't1'
  2. JOIN kat 't2' ON t1.gl=t2.id
  3. ORDER BY gl_nazwa, nazwa


Tylko wtedy ta gl musisz pewnie przerobic na NULL. To tylko koncepcja, bo dzis mi mozg ciezko pracuje, ale powinno Cie to naprowadzic smile.gif

pzdr
maciejkiner

genialne smile.gif

@ mxm - problem był trochę bardziej złożony
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-2025 Invision Power Services, Inc.