ich habe mir ausm Download-Archiv folgende Datei zum Testen heruntergeladen..
21 2017-11-21-mysql_datenbank.zip
Datenbank ist angelegt, habe das ganze ein bisschen um gebastelt ^^
Daten.- Eintragen, Suchen und bearbeiten funktioniert
Beim aufrufen der Nachrichten [auslesen.php] bekomme ich eine Fehlermeldung
Code: Alles auswählen
Deprecated: ctype_digit(): Argument of type int will be interpreted as string in the future in /..link/auslesen.php on line 52
Code: Alles auswählen
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<title>Nachrichten</title>
<style>
body {
font-family: Verdana, Arial, Sans-Serif;
background-color: Whitesmoke;
}
a:link, a:visited {
color: Royalblue;
text-decoration: None;
}
</style>
</head>
<body>
<nav>
<u>Nachrichten</u> |
<span onClick="window.location.href='eintragen.php';"
style="cursor:pointer">Eintragen</span> |
<span onClick="window.location.href='bearbeiten.php';"
style="cursor:pointer">Bearbeiten</span> |
<span onClick="window.location.href='suchen.php';"
style="cursor:pointer">Suchen</span> |
</nav><br>
<hr>
<?php
// Verbindung zur Datenbank aufbauen
include "verbinden.php";
// Anzahl der Datensätze (Nachrichten) pro Seite
$DatensaetzeSeite = 13;
// Anzahl der Datensätze ermitteln
$AnzahlDatensaetze = $db->query("SELECT COUNT(*) FROM `nachrichtdb` WHERE `anzeige` = '1'")->fetchColumn(0);
// Sind Datensätze vorhanden?
if ($AnzahlDatensaetze > 0) {
// Die Anzahl der Seiten ermitteln
$AnzahlSeiten = ceil($AnzahlDatensaetze / $DatensaetzeSeite);
// Die aktuelle Seite ermitteln
$AktuelleSeite = isset($_GET["seite"]) ? $_GET["seite"] : 1;
// Den Wert überprüfen und ggf. ändern
$AktuelleSeite = ctype_digit($AktuelleSeite) ? $AktuelleSeite : 1;
$AktuelleSeite = $AktuelleSeite < 1 || $AktuelleSeite > $AnzahlSeiten ? 1 : $AktuelleSeite;
// Den Versatz ermitteln
$Versatz = $AktuelleSeite * $DatensaetzeSeite - $DatensaetzeSeite;
// Alle Datensätze auslesen die in der DB-Spalte `anzeige` den Wert 1 haben.
// Mit LIMIT die Ausgabe der Datensätze begrenzen (Versatz und Datensätze pro Seite).
$select = $db->prepare("SELECT `id`, `datum`, `titel`, `autor`, `gang`, `regal`, `fach`, `nachricht`
FROM `nachrichtdb`
WHERE `anzeige` = '1'
ORDER BY `datum` DESC
LIMIT :versatz, :DatensaetzeSeite");
$select->bindParam(':versatz', $Versatz, PDO::PARAM_INT);
$select->bindParam(':DatensaetzeSeite', $DatensaetzeSeite, PDO::PARAM_INT);
$select->execute();
$nachrichten = $select->fetchAll();
// Formular.- und Blätterfunktion (Wer sich da auskennt bekommt einen Preis verliehen ;)
echo '<form action="auslesen.php" method="GET" autocomplete="off">' .
(($AktuelleSeite - 1) > 0 ?
'<a href="?seite=' . ($AktuelleSeite - 1) . '">◄</a>' :
' ◄') .
' <label>Seite <input type="text" value="' . $AktuelleSeite . '" name="seite" size="3"' .
' title="Seitenzahl eingeben und die Eingabetaste drücken."> von ' . $AnzahlSeiten . '</label>' .
(($AktuelleSeite + 1) <= $AnzahlSeiten ?
' <a href="?seite=' . ($AktuelleSeite + 1) . '">►</a>' :
' ►') .
'</form>';
// Ausgabe über eine Foreach-Schleife
foreach ($nachrichten as $nachricht) {
// Mit sscanf() wird das Format des Datums in die Variablen $jahr, $monat und $tag extrahiert.
sscanf($nachricht['datum'], "%4s-%2s-%2s", $jahr, $monat, $tag);
echo '<p><small>' . $tag . '.' . $monat . '.' . $jahr .
'</small> - <b><em>' . $nachricht['titel'] . '</em></b>' .
' Autor: ' . $nachricht['autor'] . '<br>' .
' Gang: ' . $nachricht['gang'] . '<br>' .
' Regal: ' . $nachricht['regal'] . '<br>' .
' Fach: ' . $nachricht['fach'] . '<br>' .
' Nachricht: ' . $nachricht['nachricht'] . '</p>';
}
}
else {
echo '<p>Keine Nachrichten vorhanden!</p>';
}
?>
</body>
</html>