Zadejte hledaný výraz...

Zoradenie PHP pola

Gabriel Vojtko
verified
rating uzivatele
(3 hodnocení)
29. 11. 2013 17:25:31
Zdravím, riešim jeden projekt v ktorom potrebujem zoradiť príspevky, na ktoré je možné odpovedať. Potrebujem to zoradiť podľa dátumu vytvorenia (pridania poslednej reakcie). Príspevky, ktoré boli vytvorené naposledy (teda sú najnovšie), alebo na ktoré bolo reagované naposledy potrebujem dostať v php poli na prvé miesto.
Štruktúra pola:
Ide o to, že príspevok môže ale nemusí mať ešte žiadnu odpoveď, teda last_post je null v tom prípade sa uprednostní pri tomto poli dátum vytvorenia datetime. Podľa týchto dvoch hodnôt potrebujem zoradiť celé pole tak, aby príspevok s najnovšou zmenou bol na vrchu. Skúšal som niekoľko funkcií už na zoradenie pola, ale zatiaľ ani jedna nepracovala tak, ako by som potreboval.
Aby som ešte doplnil, je možné preniesť dátumy na čisto číselnú hodnotu pomocou funkcie strtotime, takže ak by to tak bolo jednoduchšie, môžete použiť aj túto možnosť.
Vďaka
29. 11. 2013 17:25:31
https://webtrh.cz/diskuse/zoradenie-php-pola/#reply971416
Taps
verified
rating uzivatele
(118 hodnocení)
29. 11. 2013 17:52:30
a příspěvky taháš z Databáze ?
29. 11. 2013 17:52:30
https://webtrh.cz/diskuse/zoradenie-php-pola/#reply971415
Marek
verified
rating uzivatele
(2 hodnocení)
29. 11. 2013 18:04:16
Taky bych to řešil na úrovní databáze
29. 11. 2013 18:04:16
https://webtrh.cz/diskuse/zoradenie-php-pola/#reply971414
tomve
verified
rating uzivatele
(22 hodnocení)
29. 11. 2013 18:21:08
já řešil podobný problém, měl jsem json a řadit podle id, bylo to jinak řazený ... ten kod je vytáhnutý ze třídy, tak snad je celý + editovaný názvy
29. 11. 2013 18:21:08
https://webtrh.cz/diskuse/zoradenie-php-pola/#reply971413
Gabriel Vojtko
verified
rating uzivatele
(3 hodnocení)
29. 11. 2013 19:24:22
Taps, BumbleBeee - Áno, príspevky sú ťahané z databázy, je možné to teda riešiť aj na tejto úrovni. Nejaký nápad teda ako dopitovať na príspevky z DB aby sa radili podľa dátumu vytvorenia, resp. ak existuje komentár na príspevok aby sa aplikoval práve tento dátum?
Tomve - funkcia ako pozerám je prispôsobená na jeden "key", ja mám ale dva "datetime" a "last_post" a z týchto dvoch sa má do úvahy pri radení vybrať ten novší dátum, teda sa môže kombinovať kľúč "datetime" aj "last_post".
29. 11. 2013 19:24:22
https://webtrh.cz/diskuse/zoradenie-php-pola/#reply971412
Můžete příspěvky seřadit přímo v databázi
nebo v PHP vhodnou datovou strukturou
Stačí pak pole seřadit sestupně podle klíče.
29. 11. 2013 20:54:04
https://webtrh.cz/diskuse/zoradenie-php-pola/#reply971411
Gabriel Vojtko
verified
rating uzivatele
(3 hodnocení)
29. 11. 2013 23:21:33
Najlepšie by som to spravil na úrovni databázy ako ste písali, že by to bolo aj najlepšie, no nie je možné to spraviť ako ste písal Martin Schlemmer lebo celé je to riešené na jednej tabuľke a na báze komentárov (zle som sa vyjadril s tými článkami a komentármi). Prikladám štruktúru databázy (ak by bolo lepšie pridať jeden osobitný stĺpec pre dátum komentárov, tak sa pridá, pôvodná štruktúra je ale takáto).
Ak je prvý komentár vo vlákne, teda komentár, ktorý zakladá nový topic vo vlákne, tak reply_to = 0, ak je odpoveď na tento komentár, tak reply_to = ID komentára ku ktorému sa viaže komentár, teda ID komentára, ktorý zakladá nový topic vo vlákne.
Cez PHP by to možno aj šlo, lenže je tam stránkovanie a na stránku sa zobrazuje 10 vlákien komentárov, teda to zoradenie sa aplikuje len na 10 vlákien pričom na ďalšej stránke môžu byť vlákna s novším dátumom, teda by to bolo najlepšie vyriešiť na úrovni databázy.
Dúfam, že som to už vysvetlil lepšie.
Je možné prispôsobiť databázový dopyt na takúto štruktúru tabuľky podľa už vyššie spomenutých požiadaviek?
Vyriešené na úrovni DB. Vďaka všetkým za pomoc.
29. 11. 2013 23:21:33
https://webtrh.cz/diskuse/zoradenie-php-pola/#reply971410
Pro odpověď se přihlašte.
Přihlásit