Forum » Server-Side scripting » Actieve topic lijst
devow.nl
Berichten: 1592
avatar
Offline Stuur privebericht
Beste leden,

Ik ben druk bezig met een forum script te maken, maar nu wil ik een lijst met actieve topics zoals hier.

Maar dan ook excact zoals hier. Nu is mijn vraag, hoe zorg ik ervoor dat:

- topics die net zijn aangemaakt bovenaan komen (datum check van reacties?)

- topics checken op datum, topic met de jongste datum bovenaan (als de reacties ook ouder zijn dan het topic.

ik had dit zelf al beetje geprobeerd maar daar kwam beetje onzin uit

Oplossing:

een extra veld toegevoegd daarin komt automatisch de datum van het laatste bericht in te staan.

Wanneer het topic wodt geopend komt er in laatste bericht de start datum te staan, zo weet je zeker dat het goed werkt.

Bedankt Darsstar
Laatst gewijzigd door Luc op 2010-05-13 23:11:02
13-05-2010 14:55
Dit topic is 121 keer bekeken door 3 verschillende leden
Reacties op: "Actieve topic lijst"
1
Skydiving!
Berichten: 1399
avatar
Offline Stuur privébericht
Ik heb nog een stukje script liggen van de PCexperience source.
Tracker.php

(bij mij werkt het goed!)

Code | Selecteer Alles
minimaliseren
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<?php

mysql_connect
("localhost""***""***");
mysql_select_db("***");

function 
choppen($input$limiet){

$tekens strlen($input);

if(
$tekens $limiet){

$input substr($input0$limiet);
$input $input."...";

}

$output $input;

return 
$output;

}

$query mysql_query("SELECT * FROM forum_topics ORDER BY laatstereactie DESC LIMIT 0,5");

while(
$row mysql_fetch_assoc($query)){

    
$querya mysql_query("SELECT * FROM forum_reacties WHERE topicid='".$row['id']."'");
    
$aantal mysql_num_rows($querya);

    if(
$aantal == 1){

        
$reacties "1 reactie";

    } else {

        
$reacties $aantal." reacties";

    }

    
$tekst date('H:i'$row['laatstereactie'])." | ".choppen($row['onderwerp'],17).", ".$reacties;

    echo 
"- <a href=\"forum.php?pagina=topic&topic=".$row['id']."\" title=\"".$tekst."\">".$tekst."</a><br>";

}

?>


Er kan veel veranderd worden, want erg netjes is het niet.
Maar ik bedoel hier meer mee, gebruik dit als voorbeeld
13-05-2010 20:17
Luc
devow.nl
Berichten: 1592
avatar
Offline Stuur privébericht
Ik snap er eerlijk gezegt weinig van heel het script. Ben nogsteeds zelf druk bezig eruit te komen maar heb geen idee wat ik fout doe..
13-05-2010 21:30
Berichten: 2123
avatar
Offline Stuur privébericht
Als je je database design post, kunnen wij ook iets voor je betekenen. Zonder informatie is dit toch wat lastig...
13-05-2010 21:58
Luc
devow.nl
Berichten: 1592
avatar
Offline Stuur privébericht
Het gaat me niet zo zeer dat jullie het script voorkauwen, alleen wil ik weten hoe je checkt op actieve topics.

Ik heb daarvoor een forum_reacties tabel met daarin een forum_reactie_datum, en daarnaast heb je dan een forum_onderwerp met daarin forum_onderwerp_datum.

Deze 2 tabellen zijn aan elkaar gekoppeld via: forum_reacties_sub=forum_onderwerp_id

Nu wil ik dus zo'n actieve topic lijst zoals hier, en nu is mijn vraag hoe krijg ik dat zo voor elkaar?
13-05-2010 22:09
Vreemd
Berichten: 1246
avatar
Offline Stuur privébericht
Als je nou bij de topic nog een veld maakt met een naam in de trant van "last_activity" en daar op laat orderdenen...
Anders moet je gaan stoeien moet group by om dubbele topics te voorkomen, en group by in combinatie met joinen en ordenen wilt nog al eens problemen opleveren...
13-05-2010 22:55
Luc
devow.nl
Berichten: 1592
avatar
Offline Stuur privébericht
ja dat probeer ik nu ook, maar dat wilde me nog niet egt lukken. Want wat nou als er nog geen reactie is gegeven? of moet er ook automatisch dezelfde datum in komen te staan als het topic datum als er een topic gestart word?
13-05-2010 23:00
Vreemd
Berichten: 1246
avatar
Offline Stuur privébericht
Ja

Edit: je kan ook NULL als de standaard waarde van last_activity hebben en dan ordenen op COALESCE(last_activity, datum)
13-05-2010 23:02
Luc
devow.nl
Berichten: 1592
avatar
Offline Stuur privébericht
oke bedankt, het werkt nu zelfs

4 2010-05-13 23:00:44
6 2010-05-13 23:00:44
2 2010-05-12 19:09:53
1 2010-05-01 19:09:53
3 2010-05-01 19:09:53
5 2010-05-01 19:09:53

Dat het zo makkelijk was, ik zat alleen maar moeilijk te denken
13-05-2010 23:08
Vreemd
Berichten: 1246
avatar
Offline Stuur privébericht
Je moet het niet moeilijker maken dan dat het is, na normaliseren komt de-normaliseren!

PS. ik heb vandaag over een nieuwe leuke SQL functie geleerd
13-05-2010 23:26
Luc
devow.nl
Berichten: 1592
avatar
Offline Stuur privébericht
Ja en ik ook, en gebruik hem nu ook al in het script, en werkt perfect bedankt dat je deze functie met me wou delen.
14-05-2010 07:25
Reageer op: "Actieve topic lijst"
1
Je kan niet reageren omdat je niet bent ingelogd. Inloggen of Aanmelden