2017-03-16 2 views
1

So sorry bemerkt wird, wenn dies eine blutige Anfänger Frage, aber ich kann keine Antwort auf meine Frage scheint heraus auf der großen Web hier zu finden ...HTML aktualisieren, wenn eine Veränderung in der MySQL-Datenbank

I‘ m Aufbau einer Site, wo es darauf ankommt, dass einige Daten auf der Seite automatisch aktualisiert werden müssen ....

Genauer gesagt, wenn eine Änderung in der MySQL-Datenbank vorgenommen wird. Angenommen, der Wert einer Zeile in der Datenbank ist 10 und ändert sich in 11, ich benötige die Seite, um diese automatisch aus der Datenbank zu erhalten, und aktualisiere sie auf der Site. Auch, wenn möglich, gibt es irgendeine Möglichkeit, die Nummern ein wenig herausspringen zu lassen, wenn sich die tatsächlichen Daten ändern?

<div class="container hero-unit"> 
    <h1>Test Data Change</h1> 
    <p>231</p> 
    <p>7</p> 
    <p>14532</p> 
</div> 

Let‘sagen, dass diese Zahlen aus der Datenbank abgerufen werden, wie würde ich‚diese Daten AJAX‘auf automatische Änderung, wenn eine Änderung an der Datenbank vorgenommen wird?

Wenn dies möglich ist, überhaupt, würde ich jeden Beitrag zu schätzen wissen .....

+0

Sie können es mit 'AJAX' machen –

+0

Code zum Starten anzeigen –

+0

@SumonSarker Ja, das ist, was ich dachte. Hast du einen Beispielcode? :) – Coderax

Antwort

1

Wenn Sie PHP verwenden, als Sie diese code-

in Ihrem HTML-

folgen kann,

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/ 
libs/jquery/1.3.0/jquery.min.js"></script> 
<script type="text/javascript"> 
var auto_refresh = setInterval(
function() 
{ 
$('#load_tweets').load('record_count.php').fadeIn("slow"); 
}, 1000); // refresh every 1000 milliseconds 

<body> 
<div id="load_tweets"> </div> 
</body> 

In PHP (record_count.php) File-

<?php 
include("db.php"); 
$search_word=$_GET['q']; 
$sql = mysqli_query($db,"Select number form Users"); 
$record_count=mysqli_num_rows($sql); 
//Display count......... 
echo $record_count; 
?> 

Ref: http://www.9lessons.info/2009/07/auto-load-refresh-every-10-seconds-with.html

2

Dieser Prozess wird als polling bezeichnet. Es gibt grundsätzlich zwei Möglichkeiten, dies zu tun, die long polling sind und short polling

In Short polling Sie im Grunde einen Timer machen und Informationen aus einer PHP-Datei erhalten, die DB-Daten all paar Sekunden oder so ausgibt und dann vergleichen Sie die Daten, um zu sehen, ob die Daten haben wurde aktualisiert oder nicht.

Dann gibt es long polling das ist bevorzugt, da es weniger Druck auf den Server bringt. FB verwendet long polling. In diesem Prozess, was Sie im Grunde tun, ist, dass Sie eine Anfrage an eine PHP-Datei und die PHP-Datei antwortet nicht, bis es in der Datenbank aktualisiert wird, so dass alle paar Sekunden eine AJAX-Anfrage zu PHP-Datei hier wird es jede Minute gemacht oder Also weniger Druck auf den Server.

Sie hier lange Polling Beispiel https://techoctave.com/c7/posts/60-simple-long-polling-example-with-javascript-and-jquery

Mehr hier Beispiele https://gist.github.com/jhbsk/4353139

+0

Möchten Sie ein Beispiel dafür geben, mit langem Polling, der Verwendung der Datenbank und der eigentlichen Aktualisierung der Daten selbst? :) – Coderax

+0

@Coderax https://github.com/panique/php-long-polling Dies ist ein vollständiges Beispiel mit client- und serverseitigem Code. – Zeus

+0

Ich mag, was ich sehe, und ich denke, das ist etwas, wonach ich suche, aber ich kann es nicht zur Arbeit bringen. Wenn ich die Beispieldatei data.txt verwende und die Änderungen speichere, bekomme ich keine "Antwort vom Server", die Seite ist leer. – Coderax

0

Die kurze Antwort finden kann, ist, dass, sobald der Browser die Seite hat, dass das Ende der Verbindung ist. Der Server kann den Browser nicht darüber informieren, dass etwas passiert ist.

Mithilfe von JavaScript können Sie jedoch Post-hoc-Anfragen an den Server senden, ein Prozess, der als Ajax bezeichnet wird. Dazu benötigen Sie 2 Teile:

  • ein PHP-Skript, das auf eine Anforderung reagiert und sendet ein Ergebnis
  • ein JavaScript, das die Anforderung und das Ergebnis verarbeiten zurückschickt.

Das PHP-Script kann relativ kurz und einfach sein:

<?php 
    [email protected]($_GET['id']); 
    // get data from database into an array 
    print json_encode($result); 
?> 

Und das JavaScript muss nur die Anfrage senden und die Antwort handhaben. Der Trick besteht darin, dies regelmäßig zu tun, z. B. mit window.setInterval.

In Ermangelung spezifischer Daten ist der obige Code nicht getestet, aber das ist ungefähr wie es funktionieren sollte.

Verwandte Themen