login  Naam:   Wachtwoord: 
Registreer je!
 Forum

ongelezen berichten

Offline webstab - 06/03/2005 19:19 (laatste wijziging 06/03/2005 19:22)
Avatar van webstabPHP ver gevorderde Ik wil op mijn forum de ongelezen berichten in het vet doen.(per user)
Ik heb er aan gedacht om dit zo te doen:
een tabel in mijn db: forum_gelezen
Bij het lezen van een topic:
  1. $aantalread = mysql_num_rows(mysql_query("SELECT * FROM forumgelezen WHERE forumid='".$_GET['id']."' AND userid=".$_SESSION['gId'].""));
  2. if ($aantalread == "0") {
  3. $queryread ="INSERT INTO forumgelezen (forumid, userid) VALUES ('".$_GET['id']."', '".$_SESSION['gId']."')";
  4. mysql_query($queryread) or die (mysql_error());
  5. }

En dan bij het posten van een nieuw bericht
  1. mysql_query("DELETE FROM forumgelezen WHERE forumid='".$_GET['id']."' AND userid != '".$_SESSION['gId']."'") or die (mysql_error());

Maar op den duur krijgde heel veel rijen.
is er een andere manier om dit op te lossen?

5 antwoorden

Gesponsorde links
Offline Maarten - 30/11/1999 00:00
Avatar van Maarten Erelid Ja, op de meeste fora is dit volgens mij gewoon met cookies...
Offline prorsoft - 30/11/1999 00:00 (laatste wijziging 30/11/1999 00:00)
Avatar van prorsoft PHP gevorderde ik denk dat je zoiets moet doen dat ie kijkt of de naam het bericht in de cookie staat, zonee maakt ie het vet, zoja niet.rnen als je hem leest dan zet ie de naam van het bericht in de cookie.
Offline Arnout - 30/11/1999 00:00
Avatar van Arnout HTML beginner Ik zou het met tijd doen...rnGewoon de tijd dat de user het laatst online is geweest in een cookie zetten en dat vergelijken met de tijd van het bericht...
Offline numlockrond - 30/11/1999 00:00
Avatar van numlockrond Onbekend en sowieso niet alle kolommen ophalen en met mysql_num_rows() gaan controleren, want je hebt die kolommen (de inhoud ervan) helemaal niet nodig, dus het kost alleen maar geheugen.rnrn[code]$aantalread = mysql_result(mysql_query(SELECT COUNT(1) FROM forumgelezen WHERE forumid='.$_GET['id'].' AND userid=.$_SESSION['gId']), 0);rnif($aantalread == 0){[code]
Offline twopeak - 30/11/1999 00:00
Avatar van twopeak Gouden medaille

PHP ver gevorderde
zoals Arnout zegt is de oplossing dat bijna geen problemen oplevert. Je dan wel aan dat de gebruiker alles leestrnrnAnders maak je een tabel gelezen waarin je een veld en het id van de topic zet en een veld met de gebruikers-idrnZo onthou je welke topic de gebruiker al gelezen heeft.rnHet negatieve is dat je dan weer niet bij bent met de topic replies.rnrnDaarom kun je dit systeem weer eens uitbreiden met in diezelfde tabel, maar met een extra veld met daarin het id van de laatste reactie.rnrnJe begrijpt dat hoe juister het systeem hoe uitgebreider het wordt.rnIk denk dat je genoeg hebt met de tijd te onthouden!
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.187s