Neuen Datenbankeintrag anzeigen

dennis-sauer

Erfahrenes Mitglied
Hallo zusammen,

Ich habe mir eine kleine Funktion mit Javascript und einer Datenbankabfrage gebastelt. In einer Navigation wird alle 5 Minuten in der Navigation die Anzahl der in der DB gespeicherten Nachrichten abgefragt:

Deine Nachrichten (5) <-- so z.B.

Nun möchte ich aber, dass eine Benachrichtigung auf der Seite erscheint (das wollte ich per Growl Plugin lösen).

Dazu benötige ich aber die Datenbankabfrage im Hintergrund alle 5 Minuten die, nur einen neuen Eintrag abfragt. Wie kann ich das bewerkstelligen. Zur zeit ist es relativ simpel.

PHP:
"SELECT * FROM messages"

So weiß ich jetzt das ich 5 habe, nach 5 Minuten wüsste ich das ich 6 habe. Aber dann soll die Benachrichtigung kommen: "Sie haben eine neue Nachricht"

Danke und Grüße

Dennis
 
Eine möglichkeit wäre die anzahl der PM's in der Session und/oder Usertabelle zu Speichern.
Dann kannst du den neu gezählten Wert mit dem Wert in der Session &/ Usertabelle vergleichen.
Wenn der Wert höher ist hat der user neue Nachrichten bzw. min. eine neue Nachricht.

Nach dem vergleich erhöhst du dan den Wert in der Session &/ Usertabelle.

Hoffe du verstehst was ich geschrieben habe^^
 
item: Wenn due nur die Anzahl brauchst, solltes du mit COUNT() auch nur die ANzahl abfragen und nicht alle Daten.

item: Du solltest mit WHERE den User einschränken. Bringt ja nix wenn alle Usernachrichten gezählt werden

PHP:
$sql = "SELECT COUNT(*) FROM messages WHERE user_id = {$userId};";
$result = mysql_query($sql);
$count = mysql_result($result, 0);

item: Wenn am Anfang also 5 steht. Beim nächsten mal sind es 6. Dann erscheint '1 neue Nachricht'. Nach weiteren 5 Muniten soll das stehen bleiben wenn er sie noch nicht gelesenhat oder automatsch verschwinden?
 
Du hast zurzeit 5 Nachrichten, die sind aber gelesen. So verstehe ich das.
Du bekommst eine neue Nachricht, ungelesen. Das möchtest du melden.

Wie wäre es, wenn du in deiner Datenbank eine Spalte "gelesen" (true/false) machst und dann einfach nach gelesen=false suchst?
 
Hallo,

Ja quasi nutze ich sowas aber, vergessen zu erwähnen, das es sich dabei um eine Mitteilung an einen allg. User handelt. D.h. nicht jeder muss sich registrieren, kann aber eine Mitteilung erhalten.
 
Ah, das ändert natürlich einiges. Dann bleibt dir wohl eher doch nur die Möglichkeit über Sessions oder Cookies.
 
Zurück