webForumDet fria alternativet

live notifikation av nya meddelanden? (från mysql)

PHP

4 svar · 387 visningar · startad av alioooop

Medlem sedan feb. 2008120 inlägg
Frågan#1

hej :)
tänkte höra om någon kunde hjälpa mig med detta.

sparar alla meddelanden i en mysql tabell och har en variabel för lästa, då vill jag att den ska kolla hur många olästa jag har live med antingen någon sorts intervall eller något annat sätt för att få en så exakt notifikation som möjligt utan att behöva uppdatera sidan.

3 new messages är ett exempel på hur det kommer se ut där jag vill ha detta :)

MVH Ali

Medlem sedan feb. 20034 441 inlägg
#2

Jag hade löst det med ajax och en timer som ligger och gör ett "kontrollscript" varannan minut eller så. Då kommer det att köras i bakgrunden och visa då ett nytt meddelande finns.

Medlem sedan feb. 2008120 inlägg
#3

har aldrig jobbat med ajax :) skulle du kunna skriva ett exempel eller säga vad jag ska använda mig ut av :) ledord dvs

Medlem sedan feb. 20034 441 inlägg
#4

Jag hade använt SACK och sen gjort typ såhär:

message.js

function check_messages(){
	mysack = new sack();
	mysack.requestFile = "ajax.check.message.php";

	mysack.onLoading	= function(){ };
	mysack.onError		= function(){ alert("check_message() failure: " + mysack.response + "\n"); };
	mysack.onCompletion	= function(){ 
						var result = mysack.response.split("|");
						var status = parseInt(result[0]);
						if(status == 200){
							alert("Du har " + result[1] + " nya meddelanden!\n");
							window.location.href = "message.inbox.php";
						}
					    };
	mysack.runAJAX();
}

setTimeout("check_messages()", 60000);

message.php

$query = "SELECT message_id FROM messages WHERE unread = 2";
$result = mysql_query($query) or die(mysql_error());
if(!(mysql_num_rows($result) == false)){
	echo "200|" . mysql_num_rows($result);
}
mysql_free_result($result);

Scriptet kommer att köras varje minut och om det finns nya meddelanden visas en alert().
Ovanstående är helt otestat men visar principen.

Medlem sedan feb. 2008120 inlägg
#5

tack ska testa det där så fort jag ffår tid :)

261 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)