newwarrior
Erfahrenes Mitglied
Hi,
ich habe ein kleines Forum.
In der DB gibt es hinter jeden Topic eine Spalte (read_user_id) wo die ID's der User gespeichert werden, die das Thema bereits gelesen haben.
Jetzt will ich bei der Foren ansicht prüfen, ob es Themen gibt die der User noch nicht gelsen hat und dieses dann durch ein ICON kenntlich machen.
Ich habe jetzt eine kleine Funktion geschrieben, die erst mal prüft, ob der User bereits das Thema gelesen hat:
Mein Problem ist jetzt, dass alle als gelesen makiert sind (also true) obwohl das nicht der Fall ist.
Ich kann mir das leider auch nicht erklären, warum das der Fall ist.
So checke ich es und rufe die Funktion auf:
Danke für die Hilfe
ich habe ein kleines Forum.
In der DB gibt es hinter jeden Topic eine Spalte (read_user_id) wo die ID's der User gespeichert werden, die das Thema bereits gelesen haben.
Jetzt will ich bei der Foren ansicht prüfen, ob es Themen gibt die der User noch nicht gelsen hat und dieses dann durch ein ICON kenntlich machen.
Ich habe jetzt eine kleine Funktion geschrieben, die erst mal prüft, ob der User bereits das Thema gelesen hat:
PHP:
function check_user_read_board ($user_id, $board_id, $db)
{
$ba = false; // erstmal false setzten (bei false hat er das Thema noch nicht gelesen)
$sel_to = 'SELECT read_user_id FROM board_topics WHERE board_id = "'.$board_id.'"';
$result_sel = mysql_query($sel_to) OR die(mysql_error());
while($data = mysql_fetch_assoc($result_sel))
{
$id = explode("-", $data['read_user_id']); // die ID's werden so gespeichert ID-ID-ID
for($i = 0; $i < count($id); $i++)
{
if($id[$i] == $user_id) $ba = true;
}
}
if(!empty($result_sel))
{
$ba = true;
}
return $ba;
}
Ich kann mir das leider auch nicht erklären, warum das der Fall ist.
So checke ich es und rufe die Funktion auf:
PHP:
if(check_user_read_board($_SESSION['userid'], $data_board['board_id'], $db) === false) echo '<img src="../../img/mainpage/folder_page.png" alt="new" /> ';
else echo '<img src="../../img/mainpage/folder.png" alt="nothing new" /> ';