Autor | Zpráva | ||
---|---|---|---|
jooooo Profil * |
#1 · Zasláno: 16. 2. 2015, 01:11:08
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 |
#2 · Zasláno: 16. 2. 2015, 01:48:42
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 |
#3 · Zasláno: 16. 2. 2015, 03:30:47
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 |
#4 · Zasláno: 16. 2. 2015, 09:18:55
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 |
#5 · Zasláno: 16. 2. 2015, 10:46:53
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 * |
#6 · Zasláno: 16. 2. 2015, 12:29:19
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. |
||
Časová prodleva: 10 let
|
0