2010-11-18 8 views
2

Ich habe ein insertUpdate.php welche Einsatztabellenzeilen in MYSQL-Datenbank,Wie wird eine Aktualisierung der .php-Seite ausgelöst, wenn ein neuer Datenbankeintrag hinzugefügt wird?

<?php $userid=$_POST["userid"]; $timestamp=$_POST["timestamp"]; $addALine="INSERT INTO myDatabase (userid,timestamp) VALUES ('$userid','$timestamp')"; 
$intoDatabase=mysql_query($addALine); ?> 

und ein showUpdate.php, die die Tabelle als Webseite anzeigen,

while ($latestRow=mysql_fetch_row($result)) 
{ $data .= "<tr><td>".$latestRow[0]." </td><td> ".$latestRow[1]."</td></tr>\n"; 
} 

Ich will nicht einstellen eine automatische Aktualisierung alle paar Sekunden wie <?php header('Refresh: 8'); ?>.

Wie löst man die showUpdate.php aus, wenn ein neuer Eintrag in die Datenbank durch die insertUpdate.php eingefügt wird? Danke für jede Hilfe!

+0

verwenden Sie eine js-Bibliothek? Jquery? –

Antwort

3

Webseiten sind zustandslos. Sobald Sie die Antwort gesendet haben, ist alles vorbei.

Wenn eine Webseite über einen neuen Datensatz informiert werden soll, muss der Server abgefragt werden, ob neue Datensätze vorhanden sind. Sie können keine Benachrichtigung vom Server an eine Serving-Seite senden.

+0

Aber mit HMTL5 können Sie bald. WebSockets und Fenster Ereignisse ... –

0

Sie können die Datenbank mit AJAX abfragen (im Hintergrund) und die Seite aktualisieren, wenn ein neuer Eintrag hinzugefügt wird.

Da http ein zustandsloses Protokoll ist, gibt es außer dem Aktualisieren oder Polling keine andere Option.

0

Verwenden Sie eine XMLHttpRequest, um den Seitenstatus beizubehalten.

setInterval(function(){ // every 10 seconds 
    // using jQuery 
    $('#container').load('/showUpdate.php'); // load php page into #container 
}, 10000); 

Es gibt keine Events in einer Web-Seite für, wenn die Datenbank geändert hat.

Verwandte Themen