2016-04-07 2 views
-1

Ich habe einen Mitarbeiter Tisch hier um zu sehen, ob sie im Büro oder draußen sind. Ich habe eine PHP-Datei, um den Status aus der Datenbank auszuwählen. Ich habe versucht, den Status von out zu in und out in der Datenbank zu ändern, aber ich kann keine Änderungen auf meiner PHP-Seite sehen, bis ich sie neu lade. Wie kann ich meine PHP-Seite automatisch ändern, wenn sich die Datenbank ändert? Ich bin ein Neuling also bitte helfen Sie ... Vielen Dank im Voraus. Ich habe die PHP-Datei hier:Wie kann ich meine PHP-Seite entsprechend den Aktualisierungen in der Datenbank ändern?

<?php 
$dbhost = 'localhost'; 
$dbuser = 'root'; 
$dbpass = 'pass'; 
$conn = mysql_connect($dbhost, $dbuser, $dbpass); 
if(! $conn) 
{ 
    die('Could not connect: ' . mysql_error()); 
} 
$sql = 'SELECT Name,Status FROM Employees'; 

mysql_select_db('new'); 
$retval = mysql_query($sql, $conn); 
if(! $retval) 
{ 
    die('Could not get data: ' . mysql_error()); 
} 
while($row = mysql_fetch_array($retval, MYSQL_ASSOC)) 
{ 
    echo "Name :{$row['Name']} <br> ". 
     "Status: {$row['Status']} <br> ". 
     "--------------------------------<br>"; 
} 
echo "Fetched data successfully\n"; 
mysql_close($conn); 
?> 
+1

Bitte verwenden Sie nicht die [mysql_' Datenbankerweiterung] (http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php), es ist veraltet (gegangen für immer in PHP7) Besonders wenn Sie nur PHP lernen, verbringen Sie Ihre Energie zu lernen, die 'PDO' oder' mysqli_' Datenbankerweiterungen, [und hier ist einige Hilfe zu entscheiden, welche zu verwenden] (http://stackoverflow.com/questions/12859942/why-shouldnt-i-uses-mysql-funktionen-in-php) – RiggsFolly

+0

_Wie kann ich meine php-Seite automatisch ändern, wenn eine Änderung in der Datenbank vorgenommen wird? Sie können nicht! Nicht ohne viel Technologie, als Sie im Moment bereit sind – RiggsFolly

+1

wenn es sich um eine einfache Seitenaktualisierung handelt, dann tun Sie das einfach. Viele Möglichkeiten, um es zu tun. Wenn es jedoch darum geht, etwas auszulösen, dann ist das ein anderes Ballspiel. –

Antwort

0

HTTP kein asynchrones Protokoll ist. Die einzige Möglichkeit, die Daten auf der Webseite zu aktualisieren, besteht darin, die Seite neu zu laden, zB die SQL-Abfrage erneut auszuführen, die Ergebnisse zu parsen und anzuzeigen. Sie könnten möglicherweise tun, was Sie AJAX Methoden wollen mit .. aber ich etwas tun, wie dies für eine „in-house“ Seite es alle 5 Minuten ...

<!DOCTYPE html> 
<html> 
<head> 
<META HTTP-EQUIV="Pragma" CONTENT="no-cache"> 
<META HTTP-EQUIV="Expires" CONTENT="-1"> 
<script type="text/JavaScript"> 
<!-- 
function timedRefresh(timeoutPeriod) { 
setTimeout("location.reload(true);",timeoutPeriod); 
} 
// --> 
</script> 
<title>TITLE</title> 
</head> 
<body onload="JavaScript:timedRefresh(300000);"> 
<?php //do the query, display results ... 
?> 
</body> 
</html> 
+0

Danke !! Aber gibt es eine Möglichkeit, dass ich nur die PHP-Seitenladung und ohne die ganze Seite laden kann, weil es Zeit braucht, um die Seite neu zu laden, wenn es viele Inhalte oder Stile hat ... –

+0

vielleicht ist vielleicht ein Iframe, was Sie wollen ? –

+0

In Ihrer Hauptseite, dass Sie neu laden möchten nicht, fügen .. Dann empoyeestatus.php würde Datei mit dem Reload erhalten Code, den ich zuvor gepostet habe, so dass nur der Inhalt des iFrame alle 5 Minuten neu geladen wird., nicht die ganze Seite –

-2

Verwenden Sie die unten mysql

while($row = mysql_fetch_array($retval)) 
    { 
     echo "Name :{$row['Name']} <br> ". 
      "Status: {$row['Status']} <br> ". 
      "--------------------------------<br>"; 
    } 
+0

Also was glaubst du hast du geändert ??? – RiggsFolly

+0

Ich habe das Argument von myself_fetch_array ($ retval) geändert. Es gibt kein 2. Argument – Ajay

0

nachladen Wenn Sie das wirklich wollen, können Sie kann alle 5 Sekunden eine Ajax-Anfrage machen, die alten Werte mit der Anfrage senden und sie mit der Datenbank vergleichen, wenn es einen Unterschied gibt, dass Sie eine Aktualisierung auslösen, so aktualisieren Sie Ihre Seite nur, wenn es ein aktuelles Update gibt. (oder Sie aktualisieren es nur mit Ajax alle 5 Sekunden, sieht viel sauberer als eine vollständige Seite aktualisieren)

Beide erfordern Abfrage, es gibt keine einfache Möglichkeit, es zu tun, ohne nur alle paar Sekunden zu überprüfen.

Verwandte Themen