Fórum postok "szálkövetett(?)" nézet
Üdv!
A weblabor fórumához hasonló fórumot készítek. A hozzászólásokat ehhez hasonlóan szeretném megjeleníteni, vagyis az adott hozzászólásra érkezett választ néhány pixellel bentebb kezdeni.
A postokat tároló tábla jelenleg így néz ki:Az order mező szerint szerettem volna a lekérdezést rendezni, az order mezőt így állítom össze:
Ha általános hozzászólás (nem válasz), akkor az üzenet id-je kerül bele. Ha válaszról van szó, akkor a "szülő" hozzászólás id-je, plusz _ és az aktuális hozzászólás id-je.
Így néz ki:Viszont az ORDER BY nem natural order, így pl. a 4_2_13 és 4_2_2 esetében nem jó a visszakapott eredmény.
"Kissé" gány módszer és nem is működik, ezért szeretnék ötleteket, tanácsokat kérni.
Előre is köszönöm.
■ A weblabor fórumához hasonló fórumot készítek. A hozzászólásokat ehhez hasonlóan szeretném megjeleníteni, vagyis az adott hozzászólásra érkezett választ néhány pixellel bentebb kezdeni.
A postokat tároló tábla jelenleg így néz ki:
- CREATE TABLE IF NOT EXISTS `forum_posts` (
- `id` int(11) NOT NULL auto_increment,
- `post` text NOT NULL,
- `created_by` int(11) NOT NULL COMMENT 'user_id',
- `created_date` datetime NOT NULL,
- `parent_topic_id` int(11) NOT NULL,
- `sub_topic_id` int(11) NOT NULL,
- `level` int(11) default '0',
- `order` text NOT NULL,
- `active` tinyint(4) default '1',
- PRIMARY KEY (`id`)
- ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
Ha általános hozzászólás (nem válasz), akkor az üzenet id-je kerül bele. Ha válaszról van szó, akkor a "szülő" hozzászólás id-je, plusz _ és az aktuális hozzászólás id-je.
Így néz ki:
- id post order
- ----------------------------------
- 1 test 1
- 2 test-re valasz 1_2
- 3 test-re masik valasz 1_3
- 3 2-es id-jure valasz 2_3
"Kissé" gány módszer és nem is működik, ezért szeretnék ötleteket, tanácsokat kérni.
Előre is köszönöm.
Ne tégy több adatot egy mezőbe!
Ha megfigyeled a saját példád, jól látszik, hogy ha az order meződet a '-' mentén 2 mezőre bontod, minden problémád megoldódik!
Norbi
Ismerem a szabályt, de nem
A példám nem teljeskörű, mert mi van pl. ebben az esetben:
[szerkesztve]
A te módszereddel el tudnám ugyan tárolni, de nem tudom, hogyan tudnám sorrendben lekérdezni.
Tulajdonképpen kétszintű...
Innét adott a válasz a kérdésedre is: rekurzióval tudod sorrendben kiolvasni az adatokat.
Még annyi baja van a Te megoldásodnak, hogy előbb-utóbb elfogy az order mező szélessége: lásd a 698245-ös hozzászólásra adott néhány hozzászólás :-)
Igazad van
Köszönöm!
. (pont)
Köszi neked is
Véletlenül benne maradt a / jel a hozzászólás mentéskor, és ilyen stringek keletkeztek:
[szerkesztve]
Hülyeséget írtam, a fenti tárolás nem ad helyes eredményt, de az általad javasolt már tökéletesen működik.
Hierarchikus adatmodell
Köszönöm