Gå til innhold

Hvordan få til: lest/ikke lest og sånn på forum?


Anbefalte innlegg

Hei!

 

Husker denne var oppe for en stund sida, men jeg husker ikke hva jeg skal søke på. Kan være det var på Norsk Webforum og, men jaja. Spørsmålet er ganske enkelt: hvordan får jeg til slik at hver enkelt bruker kan se hvilke emner han/hun ikke har lest, og hvilke han/hun har lest? Slik at de med nye poster får et annet bilde (slik som på forumer som phpBB og IPB osv).

 

Noen som vet hvordan jeg kan gjøre dette?

 

 

 

Håper noen kommer med noen intelligente svar :)

Lenke til kommentar
Videoannonse
Annonse
Gjest Slettet+142

har aldri vært borti dette problemet før jeg, så mitt svar er sikkert ikke det mest effektive, men..

 

du kan evt. ha en database. for hver tråd er det en rad i en tabell i databasen. i den ene kolonnen i den tabellen, lagres det for hver linje noe slikt som "<user_id>_*_<siste_innleggs-id>".

 

dette ble veldig dårlig forklart føler jeg :(

 

 

tabellen:

`emne_lest`
`id`INT(5) NOT NULL PRIMARY KEY,
`lesere` TEXT NULL

 

kan du tenke deg at den kan se noe slik ut, hvis jeg er bruker nr. 56, tråd-iden er 123 og den siste posten i tråden har id 432.

 

+----+------------+
| id   | lesere      |
|-----|-------------|
| 123|  56_*_432
          58_*_430|
+----+------------|

 

som du ser er det liksom to linjer i den kolonnen `lesere`. dette er på grunn av at også en bruker med user-id 58 har lest i emnet. men han leste da det siste innlegget i emnet var innlegg-nr. 430

 

 

---

var dette et idiotisk system?

Endret av Slettet+142
Lenke til kommentar
Gjest Slettet+142

sorry.. er absolutt ikke noe bedre til å forklare enn hva jeg klarte nå..

men har prøvd å lage en kode som du absolutt er nødt til å bearbeide ved hjelp av å lese kommentarene mine og slikt.

 

 

 

<?php

$query = mysql_query("select * from emner");
if (mysql_num_rows($query) < 1) die("Ingen emner tilgjengelig!");

while($r = mysql_fetch_assoc($query)){

/*
# [
#  ... fixer alt det vanlige som skal hentes ut  ...
# ]
# 
# finner litt av hvert, bl.a legger inn id-en
# til det siste innlegget inn i en variabel med anvn $siste_innlegg_id
*/

$q2 = mysql_query("select lesere from emne_lest where id='".$r["id"]/*$r["id"] er liksom emne-id-en*/."'");
/* sjekker ikke om det returneres noen rader, grunnet at det lages en rad når emnet opprettes som standard */
$r2 = mysql_fetch_assoc($q2);
$lesere = explode("\n", $r2["lesere"]);
unset($q2, $r2);

$lest = false;

foreach($lesere as $rad){
 $L2 = explode($rad, "_*_");
 if($L2[0]==$_SESSION["user_id"]){ // antar at user_id-en legges inn i denne sessionen når en logger inn på forumet
 	if($L2[1]==$siste_innlegg){
   $lest = true;
   break;
 	}
 }


echo '<img src="'. (($lest==false) ? 'ikke_lest.jpg' : 'lest.jpg') . '">';

}


?>

 

 

 

kanskje det blir noe lettere å fortså nå? :S

Endret av Slettet+142
Lenke til kommentar

Hehe, okay, jeg er også dårlig til å forklare.

 

Men back til business, hehe. Skal prøve det du sendte med når jeg har jobbet litt med forumet. Det er ikke sånn veldig viktig å få til det jeg spør om, men ganske kjedelig å ikke vite hvilke emner som har nye innlegg osv. Men skal prøve ditt verk ut ;)

Lenke til kommentar

Se på adressen hvilke filer du bruker når du leser en tråd. Her i IPB ser det ut som om index.php blir brukt til alt, mens i PunBB er det en fil med navn viewtopic.php og en annen med viewforum.php. Navnene sier vel sitt?

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...