Avatar billede solskinsvejr Nybegynder
28. februar 2004 - 23:29 Der er 6 kommentarer og
1 løsning

Visning af nye tråde i forum

Hej, jeg har et lille problem med mit forum. Jeg har et forum, hvor man kan se en masse indlæg, men problemet er hver gang man logger ind, så kan man ikke se hvilke nye indlæg som er blevet tilføjet. Det er så det jeg på nuværende tidspunkt er igang med, men jeg sidder desværre lidt fast.

Indtil nu, har jeg lavet en funktion som logger når brugerne logger af forummet. På den måde, kan jeg sammenligne tidspunkterne de nye tråde bliver lavet med brugernes sidste logoff.

Forummet er bygget op, så der vises en oversigt over alle emnerne. Underemnerne har ingen emner, så det er derfor let at skille dem ad i oversigten. Emnerne er relateret til underemnerne med trådnumre.

Jeg benytter mig af følgende sætning, for at få vist emnerne:

$query = "SELECT emne,thread,navn,tid,email FROM forum WHERE emne !='' ORDER BY tid DESC LIMIT 0, 20";

Og denne for at vise underemnerne:

$query = "SELECT emne,thread,navn,tid,email FROM forum WHERE emne ='' ORDER BY tid DESC LIMIT 0, 20";

Da emnerne i oversigten skal være afmærket med fed, hvis man ikke har læst indlægget, skal man på en eller anden måde kombinere de to ovenstående. Men hvordan ???
Avatar billede schaefner Juniormester
28. februar 2004 - 23:56 #1
I hvilket format gemmer du tiden? Umiddelbart ville det jo være noget alla dette:

while ($row = mysql_fetch_assoc($din_query)) {
  if ($row['tid'] > $tid_for_brugerens_logud) {
    echo '<b>'.$row['emne'].'</b>';
  } else {
    echo $row['emne'];
  }
}

Men selvfølgelig alt efter hvordan du har gemt tidspunkterne. Jeg vender tilbage i morgen.

mvh:jesper.sørensen
Avatar billede krydset Nybegynder
29. februar 2004 - 00:42 #2
Hvad gør den her
mysql_fetch_assoc
Har aldrig set den før
Avatar billede schaefner Juniormester
29. februar 2004 - 10:12 #3
mysql_fetch_assoc() returnerer et associativt array (deraf navnet). mysql_fetch_array() returnerer som standard både et nummerisk og et associativt array. Du kunne også kalde mysql_fetch_array() sådan:

$row = mysql_fetch_array($din_query, MYSQL_ASSOC);

så ville du også kun få et associativt array. I øvrigt er http://php.net din ven i sådanne situationer :)

mvh:jesper.sørensen
Avatar billede schaefner Juniormester
29. februar 2004 - 10:12 #4
det skulle godt nok ikke have været et svar :(
Avatar billede solskinsvejr Nybegynder
29. februar 2004 - 11:16 #5
Tak for de foreløbige svar. Jeg har allerede lavet noget ligende:

$login = "SELECT last_login FROM login WHERE brugernavn = '$brugernavn' AND password ='$password'";
    $log = mysql_query($login);
    echo mysql_error();
   
    while ($data = mysql_fetch_row($log))
    {
        $last_login = $data[0];
    }

Her henter jeg last_login fra databasen, den bliver så sammenlignet som nedenfor:

                if ($last_login<$tid_data[3])
                    echo "<B>$data[0]</B>";
                    else
                    echo "$data[0]";

Problemet ved det her er, at som vist ovenfor, vil jeg gerne have emnet skrevet med fed skrift, hvis der er nogle tråde under dette emne, som er nyere end sidste logoff. Problemet ligger så i, at jeg bruger en while-løkke til at få skrevet samlige enmer ud, men jeg skal jo også sammenligne med dem uden emner, som er underemnerne. Hvordan gør jeg det i én while? Hvis jeg gør det i 2, går det jo galt !!!

Kan man lave en indlejret select i selecten... Eller hvordan skal det gribes an ???
Avatar billede solskinsvejr Nybegynder
29. februar 2004 - 11:21 #6
Det skal lige siges, at der ikke er nogle problemer med at få vist emnerne med fed skrift, hvis det er et helt nyt emne, som er blevet oprettet efter sidste logoff. Problemet ligger i, at få skrevet overemnet med fed, når der bliver oprettet et underemne. Så skal der nemlig sammenlignes med samtlige tråde i forummet, ikke kun emnetrådene.

Håber det giver mening ;o)
Avatar billede solskinsvejr Nybegynder
06. marts 2004 - 11:18 #7
Tak for hjælpen, selvom det ikke løste mit problem !!!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester