Hallo zusammen
Auf einer Website werden immer wieder neue Beiträge veröffentlicht, welche in eine mysql-Datenbank geschrieben werden. Nun möchte ich jeweils überprüfen, ob neue Einträge vorhanden sind und dann einen div-Container, worin die Beiträge dargestellt werden, neu laden. Dies möchte ich mit javascript und php machen.
Folgenden Code habe ich bereits geschrieben.
Mittels ajax wird die Datei "neue_nachricht.php" aufgerufen, in welcher die Anzahl Einträge in der Datenbank gezählt werden und in einer Session gespeichert werden. Diese Session wird ausgelesen und mit der alten Anzahl Einträge verglichen. Ist die Anzahl grösser, wird der div-Container neu geladen.
Leider funktioniert dies nur beim ersten Intervall. Danach nicht mehr, obwohl ich in der Zwischenzeit einen neuen Eintrag in die Datenbank geschrieben habe.
Ich habe schon viel recherchiert und noch mehr ausprobiert und komme einfach auf keinen grünen Zweig. Wo ist der Wurm begraben?
Hier noch der Code der Datei "neue_nachricht.php":
Und hier der Code der Datei "velotour_juni_2021_tracking_inhalt.php":
Es wäre super, wenn mir jemand helfen könnte! Vielen Dank schon im Voraus!
Auf einer Website werden immer wieder neue Beiträge veröffentlicht, welche in eine mysql-Datenbank geschrieben werden. Nun möchte ich jeweils überprüfen, ob neue Einträge vorhanden sind und dann einen div-Container, worin die Beiträge dargestellt werden, neu laden. Dies möchte ich mit javascript und php machen.
Folgenden Code habe ich bereits geschrieben.
HTML:
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript">
var alte_eintraege = 0;
var neue_eintraege = 0;
var updateDiv = function nachricht_ueberpruefen () {
$.ajax({url: "velotour_admin/neue_nachricht.php", async: false});
neue_eintraege = "<?php echo $_SESSION['eintraege'] ?>" ;
if (neue_eintraege > alte_eintraege) {
$('#eintraege').load('velotour_juni_2021_tracking_inhalt.php').hide().fadeIn(1000);
alte_eintraege = neue_eintraege;
}
}
</script>
</head>
<body onload="window.setInterval(updateDiv, 10000);">
<div id="eintraege">
<script type="text/javascript">
$('#eintraege').load('velotour_juni_2021_tracking_inhalt.php');
</script>
</div>
</body>
</html>
Mittels ajax wird die Datei "neue_nachricht.php" aufgerufen, in welcher die Anzahl Einträge in der Datenbank gezählt werden und in einer Session gespeichert werden. Diese Session wird ausgelesen und mit der alten Anzahl Einträge verglichen. Ist die Anzahl grösser, wird der div-Container neu geladen.
Leider funktioniert dies nur beim ersten Intervall. Danach nicht mehr, obwohl ich in der Zwischenzeit einen neuen Eintrag in die Datenbank geschrieben habe.
Ich habe schon viel recherchiert und noch mehr ausprobiert und komme einfach auf keinen grünen Zweig. Wo ist der Wurm begraben?
Hier noch der Code der Datei "neue_nachricht.php":
PHP:
<?php
include("db_connect_velotour.inc.php");
$link = mysql_connect($host, $user, $pwd)
or die("Leider ist momentan keine Datenbank-Verbindung möglich : " . mysql_error());
mysql_select_db($dbname, $link);
$erg = mysql_query ("SELECT text FROM eintraege_velotour")
or die("Es konnten leider keine Einträge aus der Datenbank gelesen werden: " . mysql_error());
$anzahl_eintraege = mysql_num_rows($erg);
session_start();
$_SESSION["eintraege"] = $anzahl_eintraege;
// MySQL-Verbindung schliessen
mysql_close($link);
?>
Und hier der Code der Datei "velotour_juni_2021_tracking_inhalt.php":
PHP:
<?php
// Erstellen der Datenbankverbindung
include("velotour_admin/db_connect_velotour.inc.php");
$link = mysql_connect($host, $user, $pwd)
or die("Leider ist momentan keine Datenbank-Verbindung möglich : " . mysql_error());
mysql_select_db($dbname, $link);
mysql_query("SET NAMES 'utf8'");
$erg = mysql_query ("SELECT text, bild_link_1, video FROM eintraege_velotour ORDER BY id DESC")
or die("Es konnten leider keine Einträge aus der Datenbank gelesen werden: " . mysql_error());
while ($row = mysql_fetch_row($erg)) {
if ($row[1]!=""){
echo "<img src='velotour_bilder/";
echo $row[1];
echo ".jpg'>";
echo "<br /><br />";
}
if ($row[2]!="") {
echo "<video width='700' height='525' controls controlsList='nodownload' preload='metadata'>";
echo "<source src='velotour_bilder/";
echo $row[2];
echo ".mp4' type='video/mp4'>";
echo "Your browser does not support the video tag.";
echo "</video>";
echo "<br /><br />";
}
echo nl2br($row[0]);
echo "<br /><br />";
echo "<hr style='border: 0.5px solid #D8D8D8;'>";
echo "<br /><br />";
}
mysql_close($link);
?>
Es wäre super, wenn mir jemand helfen könnte! Vielen Dank schon im Voraus!