Autor Zpráva
jooooo
Profil *
Ahoj,
zjednodusene mam mysql tabulku:

ROOM, PID, NAME
10     1   auto
11     1   autobus
12     11 neco1
13     10 neco2
14     1   bagr
......

a chtel bych vypsat celou tabulku tak, ze bude serazena podle abecedy sloupce NAME a zaroven, aby se vypsaly "prvne" radky, ktere maji PID jako ROOM.

Takze vysledny serazeni by melo byt:
auto
neco2
autobus
neco1
bagr

Jde to nejak vyresit?
mimochodec
Profil
jooooo:
aby se vypsaly "prvne" radky, ktere maji PID jako ROOM

To pořadí, jaks to vypsal, tomu požadavku neodpovídá. Žádný uvedený ROOM nerovná se PID a jaks k tomu pořadí došel, je mi neznámo.
Keeehi
Profil
mimochodec:
Já tam to pořadí vidím, ale je to šílenost. Podle mě by o mělo fungovat takto:
1) seřaď tabulku podle name
2) projdi postupně spoupec pid a když se nějakému záznamu (A) rovná jeho pid se room jiného záznamu (B), tak tento záznam (A) vyjmi z jeho pozice a přesuň ko hned za záznam (B)

jooooo:
Žádný způsob řazení nevidím. A i kdyby existovl, pravděpodobně bude velmi výpočetně náročný. Jsem přesvědčen, že máš špatně navržené tabulky v databázi. Když nám napíšeš, o co ukládáš, co je na čem závislé a co se vlastně snažíš vypsat, můžeme ti pomoct přeorganizovat tabulky tak, aby se s nimi lehce pracovalo.
Kajman
Profil
Jedná se o klasickou stromovou strukturu. V mysql na to není nativní podpora. Řešení je více. Je možné např. vyzobnout z mysql neseřazená data a seřadit je až v php (vhodné ve chvíli, kdy se vypisuje celý strom). Také se často přidávají pomocné sloupce a používá se tzv. traverzování kolem stromu.
mimochodec
Profil
Keeehi:
Aha, už to vidím taky. Mně se tím v noci nechtělo moc zalamovat a chtěl jsem jooooo přimět k tomu, aby to přeformulovalo. Vypadá to, že Kajman má takovou představivost, že to rozkódoval :)
jooooo
Profil *
Tabulka pro tento ucel je navrzena spatne to je mi jasny, puvodne to taky k tomuhle neslouzilo a je to tam pridano jako bonus. Z pocatku jsem to ani neresil a bylo mi vypisovani jedno, ale nakonec mi to zacalo vadit.
Nakonec jsem to vyresil blbe ale funkcne - vypisu jen ROOM s PID 1 a pod to druhym cyklem vypisuju ty dalsi. Takze se zbytecne provadi nekolik dotazu, ale v tomhle pripade to vubec nevadi. Jde o vypsani par udaju na ktery se podivam jen ja asi 3x denne.
Kazdopadne reseni ze si to hodim do pole v php a az z nej to budu zpracovavat me taky napadlo, ale prislo me to zbytecny vymyslet.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0