topic -> read -> unread
ik ben bezig met een site in mysql. op dit moment ben ik bezig met de forum. maar waar ik blijf haken is het topic gelezen en niet gelezen. ik bedoel zoals phpBB, PHPHulp en die forums het doen. hoe kan ik er voor zorgen dat op alle computers de bericht die al gelezen zijn als gelezen aangegeven wordt. en de andere als ongelezen. dit wou ik doen met cookies alleen cookies zijn alleen aanwezig op een computer. zou iemand mij hieruit kunnen helpen?
alvast bedankt
superaktieboy
niet aan beginnen.
PHPhulp doet er niet aan.
phpBB doet er volgens mij wel aan.
het lijkt me ontzettend veel werk en waarom zou je het eigenlijk willen?
nou omdat het makkelijker voor de gebruikers is :P ook voor mezelf omdat ik meestal op phpBB forums ben, ben ik eraan gewend :P
Als je dat zou doen, zou je een nieuwe rij (tabel( moeten aanmaken, en daarin alle topic nr en of je hem gelezen hebt (1) of niet (0).
De gebruiker logt in, ram de ids van ongelezen topics in een array, kijk of het topic id voorkomt in de array bij het uitlezen, zo ja, unread, else read. Als ie het topic bekijkt, id uit de array gooien. As simple as that. :)
Waar haal je die array bij het inloggen vandaan?
Gewijzigd op 01/01/1970 01:00:00 door Alfred -
Gewijzigd op 01/01/1970 01:00:00 door Andries Louw Wolthuizen
Zoals Zim zegt gaat denk ik het beste.
Webmakerij:
phpBB kijkt naar welke je gelezen hebt. Niet naar de login/logout datum.
Zoals Zim zegt gaat denk ik het beste.
Zoals Zim zegt gaat denk ik het beste.
Toch niet... Als ik inlog op phpBB, niets lees, en weer uitlog, weet phpBB niet meer dat ik die topics niet gelezen heb...
En waarop baseer je 'het beste'? Mijn methode werkt even efficiënt, en vraagt minder database rommel, zelfs geen extra waardes..
Webmakerij:
phpBB kijkt naar welke je gelezen hebt. Niet naar de login/logout datum.
Zoals Zim zegt gaat denk ik het beste.
Zoals Zim zegt gaat denk ik het beste.
Het beste?
Stel je hebt 100 members, en 1000 topics.
Dan staan er al 100 x 1000 = 100.000 rijen in een tabel, die moeten worden uitgelezen -_-'.
Het werkt misschien wel het beste, maar het is niet echt fijn voor je server...
toch bedankt allemaal
greetzz
ik heb wat problemen gekregen nadat ik Rafaels raad opvolgde..
allereerst ff zeggen $tid id gewoon $_GET['tid']!!
ten eerste ik heb een lastlogoff rij gemaakt in mysql voor de gebruikers.. en alle berichten zijn gelezen waar van er een cookie van de ID bestaat en/of de datum kleiner is dan de last logoff datum..
nu zet ik login.php de cookies:
Code (php)
maar nou zet hij in f_viewtopic.php (topic bekijken) de onderstaande cookie niet:
deze cookie hoort hij in een while loop met mysql_fetch_assoc() te zetten
de query is
Code (php)
1
$TopicsQuery = mysql_query("SELECT * FROM subcats WHERE id = '".$tid."' AND subcat_type='2' LIMIT $pbegin,$peind;") or die(mysql_error);
wat doe ik fout dat hij de cookie niet zet.?
en dan heb ik nog een probleem. in f_viewtopic.php doe ik de volgende query:
Code (php)
1
mysql_query("UPDATE forum_topics SET topic_views = topic_views + 1 WHERE topic_id = ".$tid);
maar hij zet de topic_views niet om hoog. hij blijft op 0
wat doe ik hier fout?
alvast bedankt
mvg
superaktieboy
Gewijzigd op 01/01/1970 01:00:00 door The Hosh
Je query, echo deze, en voer deze in in PhpMyAdmin, of gebruik or die(mysql_error()) en idem dito, lees de error af. Geen error? Query ok, maar gewoon geen resultaat, check $tid dan.
Gewijzigd op 01/01/1970 01:00:00 door Alfred -
ok bedankt zal ik ff probere!! omdat ik nu niet thuis ben zal het nog ff wachte :P
userid, topicid
Je krijgt dan wel een enorme tabel, maar omdat je er maar 1 item uithaalt (en beide numeriek zijn) moet dat geen probleem zijn.
dat werkte helaas niet.. ik verwijderde de @ zette de error_reporting.. hij gaf fouten van unexpected variable in mijn template parser.. voor elke variable was er een fout :S maar goed.. ik heb dan toch met een tabel gedaan.
toch bedankt allemaal..
greetz