verständnis PROBLEM

Tageslicht

Mitglied
hallo zusammen


Ich bin gerade dabei Ein Pn System zu schreiben , klappt auch alles wunderbar bis jetzt

( Pn schreiben , empfangen )

Nun möchte ich aber auch sehen wann ich neue Nachrichten bekomme !

Wie muss ich da vorgehen ? ( sozusagen wenn meine neuen nachrichten gelesen wurden sollen sie nicht mehr als neu gezählt werden )

Hier mal meine Tabellenstruktur :

PHP:
CREATE TABLE `pn` (
  `id` int(11) NOT NULL auto_increment,
  `von` varchar(20) NOT NULL default '',
  `an` varchar(20) NOT NULL default '',
  `betreff` longtext NOT NULL,
  `nachricht` longtext NOT NULL,
  `datum` varchar(14) NOT NULL default '',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM;

Mfg Tageslicht
 
gut nun habe ich ein weiteres feld in der DB angelegt ( gelesen )

wenn ein user eine Pn schreibt steht in den Feld eine 1

so wie aber mach eich es das wenn er diese Pn aufruft mit einen bestimmten id >>> das er dann automatisch es auf 0 setzt das Feld !

angenommen id 1 wird aufgerufen

ich poste hier mal meine datei mit der ich die nachricht auf rufe

PHP:
<?php 
session_start (); 
if (!isset ($_SESSION["user_id"])) 
{ 
  header ("Location: formular.php"); 
} 
require("connect.inc.php");
$abfrage ="SELECT * FROM pn WHERE an='" . $_SESSION['user_nickname']."' AND id=".$_GET['Id'];
$ergebnis = mysql_query($abfrage);
if (mysql_errno()) die ("MySQL-Error: " . mysql_error());
$ergebnis2 = mysql_fetch_array($ergebnis);
$abfrage1 = "SELECT * FROM benutzerdaten Where id=" . $_SESSION['user_id'];
$ergebnis1 = mysql_query($abfrage1);
if (mysql_errno()) die ("MySQL-Error: " . mysql_error());
$ergebnis3 = mysql_fetch_array($ergebnis1);
$Zeit = date("H:i:s" , $ergebnis3['Tickzeit']);
?>
 
<div align="center"><?echo "<font size=-1> Der letzte Tick war $Zeit</font> ";?></div>
<br><br>
<table border="1" width="70%" cellspacing="0" cellpadding="3" align="center">
<tr>
<td align="center">Nachricht</td>
<?
echo "<tr>";
echo "<td align=center>".$ergebnis2['nachricht']."</td>";
echo "</tr>";
?>
</table>
<br><br>
<div align="center"><a href="Pnindex.php">Zum Posteingang</a></div>

damit rufe ich den Pn Inhalt auf und hier muss denn auch sowas wie nen Update drin stehen was den gewissen id >>>> feld gelesen auf null steht !


Weiss wer wi das geht ?


Danke für die antworten

Mfg Tageslicht
 
Ja, so mache ich es auch.
Wenn die PN zum lesen aufgerufen wird, dann setze ich die Spalte (bei mir ist sie vorher Null) mit der zum lesen (eindeutige Indetifizierung der PN) übergebenen PnID auf eins.
Des weiteren habe ich ein include-system und checke somit bei jedem Seitenaufruf ob derjenige vielleicht neue PNs bekommen hat, d.h. ob unter den PNs die an die Userid xy gehen eine mit der Spalte gelesen gleich Null ist. Wenn dem so ist, gebe ich per Javascript noch eine kleine benachrichtigung aus.
Hat sich in real als sehr nützlich erweisen, weil sonst viele User nur einmal in hundert Jahren in ihre PNs schauen und wenn man dann als Admin wirklich mal eine wichtige Nachricht "rumschickt" kann man das entweder gleich per E-Mail machen oder muss davon ausgehen, dass die meisten ihre PNs erst später oder überhaupt nicht lesen, weil sie denken, sie bekommen eh nie eine.
Also wenn du davon ausgehst, dass eine größere Anzahl von Leuten dieses System nutzen und wenn es dir wichtig ist, dass die PNs möglichst bald gelesen werden, dann ist das kleine Javascript auch nicht schlecht.
Ich habe dazu ein Javascript confirm benützt, da kann der User dann selbst entscheiden, ob er jetzt in sein PN-Center geleitet werden will oder ob er lieber auf der Seite, auf der er ist weitersurfen möchte.
 
Zurück