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