Personligt vil jeg foreslå en
"select * from forum order by rootid" (tabel vises længere nede)
for at have de nyest tråde, der er modificeret, øverst kunne du så
"select distinct rootid from forum order by tid desc"
hvorefter du bygger et træ og traverserer ned igennem den.
Bemærk, det med at flytte tråde rundt afhængig af, hvornår nogen har
pillet ved dem gør, at du nok ikke kommer uden om en ekstra behandling
af alle data i php-laget. Måske hvis du laver en skov (et antal træer,
red) kan du klare dig uden at pløje det igennem igen.... :)
Det hele herover gør i hvert fald, at du ikke dræber sql-serveren ved
at lave 100vis af rekursive opslag.
Din tabel kunne laves sådan (og nu skriver jeg i postgresql hjemme og
oracle/mssql på arbejde, så min mysql er lidt rusten)
create table forum (
id int not null auto_increment,
parentid int not null,
rootid int not null,
tid timestamp,
navn varchar,
mail varchar,
text varchar,
primary key(id),
key(rootid),
key(tid)
)
Parentid er id'et på noden lige over
Rootid er id'et på den øverste besked i tråden (altså den allerføste)
Svenne
On Mon, 16 Apr 2001 17:10:29 +0200, "Tonni Aagesen"
<newsSPAM_ME_NOTpost@e-box.dk> wrote:
>Hej alle,
>
>Jeg er i gang med et forum, dvs. jeg mangler bare en ting. Jeg vil gerne
>have outputtet ændret fra:
>
>tråd1
> RE: tråd1
> RE: tråd2
> RE: tråd3
> RE: tråd1
> RE: tråd2
>
>til...
>
>tråd1
> RE: tråd1
> RE: tråd1
> RE: tråd2
> RE: tråd2
> RE: tråd3
>
>...så det er sorteret efter tråd.
>
>Tabellen består af: id, ref_id, dato, tidspunkt, navn, mail, tekst, length.
>
>Jeg har så nu en "SELECT * FROM forum WHERE id = '$id' OR 'ref_id = $id'
>ORDER BY length" i sql-sætningen, hvor "length" er "length + length på det
>indlæg man svarer på", så hvert "RE: " bliver rykket passende ind.
>
>Jeg har både postet dette indlæg dk.edb.database og
>dk.edb.internet.webdesign.serverside.php, da jeg ikke er sikker på, at
>svaret skal findes i query'en eller i noget php-kode inden resultaterne
>spyttes ud.
>
>Håber I kan hjælpe, og at I forstår hvad jeg mener.
>
>Mvh
>Tonni Aagesen
>
--
Mail usenet@krap.dk - svenne@krap.dk - PGP key id : 0xDF484022
ICQ: 5434480 -
http://www.krap.dk -
http://www.krap.net
PGP Key
http://keys.pgp.dk:11371/pks/lookup?op=get&search=0xDF484022