Hallo zusammen,
ich habe zu meinem Gästebuch eine Seitenzahl-Funktion hinzugefügt. Anfangs hatte ich noch 1,2 Errors, die konnte ich jedoch beseitigen. Nun ist mein Problem, dass bei jeder Seitenzahl ALLE Beiträge ausgegeben werden, obwohl ich nur 10 Pro Seite haben möchte. Leider wird mir kein Error ausgegeben, sodass ich nicht auf anhieb erkenne, was das Problem ist. Vielleicht kann mir ja einer von euch weiterhelfen? Anbei findet ihr den Code:
ich habe zu meinem Gästebuch eine Seitenzahl-Funktion hinzugefügt. Anfangs hatte ich noch 1,2 Errors, die konnte ich jedoch beseitigen. Nun ist mein Problem, dass bei jeder Seitenzahl ALLE Beiträge ausgegeben werden, obwohl ich nur 10 Pro Seite haben möchte. Leider wird mir kein Error ausgegeben, sodass ich nicht auf anhieb erkenne, was das Problem ist. Vielleicht kann mir ja einer von euch weiterhelfen? Anbei findet ihr den Code:
PHP-Code:
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
if(!isset($_SESSION))
{
session_start();
}
include ('dbconnection.php');
include 'checklogin.php';
include 'head_nav.html';
include 'kontakt.html';
?>
<!DOCTYPE HTML>
<html lang="de">
<head>
<link rel="stylesheet" href="css/normalize.css">
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<form action="" method="post">
<p>Betreff:</p>
<input type="text" name="betreff" placeholder="Betreff?"><br>
<p>Nachricht:</p>
<textarea name="nachricht" placeholder="Ihre Nachricht!"></textarea><br>
<input type="submit" name="submit" value="Absenden!"><br>
</form>
<?php
array_walk ( $_POST, 'cleanmsg' );
array_walk ( $_GET, 'cleanmsg' );
array_walk ( $_REQUEST, 'cleanmsg' );
function cleanmsg(&$value, $key)
{
// keine HTML-Tags erlaubt, außer p und br
$value = strip_tags($value, '<p><br /><b><strong>');
// HTML-Tags maskieren
$value = htmlspecialchars($value, ENT_QUOTES);
// Leerzeichen am Anfang und Ende beseitigen
$value = trim($value);
}
if(isset($_POST['submit'])):
$betreff = $_POST['betreff'];
$nachricht = $_POST['nachricht'];
$userid = $_SESSION['user'];
$StrSQL = "INSERT INTO kontakt (userid_fk,betreff,nachricht,datum)
VALUES (?,?,?,NOW())";
$absenden = $db->prepare($StrSQL);
$absenden->bind_param('iss', $userid, $betreff, $nachricht);
$absenden->execute();
endif;
$StrSQL2 = "SELECT users.benutzername as bn,
kontakt.betreff, kontakt.nachricht, kontakt.datum
FROM users RIGHT JOIN kontakt
ON users.userid = kontakt.userid_fk ORDER BY datum DESC";
$abfrage = $db->query($StrSQL2);
echo 'Es wurden '.$abfrage->num_rows.' Nachrichten gefunden!<br>';
while ($ausgabe = $abfrage->fetch_object()){
echo '
<b>Benutzer:</b> ' . (!is_null($ausgabe->bn) ? $ausgabe->bn : 'Gast' ). '<br>'.
'<b>Datum:</b> ' . $ausgabe->datum . ' <br>'.
'<b>Betreff:</b> ' . $ausgabe->betreff . ' <br>'.
'<b>Nachricht:</b><br> ' . $ausgabe->nachricht . ' <br>
<hr>';
}
$result_total = mysqli_query($db,'SELECT COUNT(*) as `total` FROM kontakt');
$row_total = mysqli_fetch_assoc($result_total);
$gesamte_anzahl = $row_total['total'];
$ergebnisse_pro_seite = 10;
$gesamt_seiten = ceil($gesamte_anzahl/$ergebnisse_pro_seite);
if (empty($_GET['seite_nr'])) {
$seite = 1;
} else {
$seite = $_GET['seite_nr'];
if ($seite > $gesamt_seiten) {
$seite = 1;
}
}
$limit = ($seite*$ergebnisse_pro_seite)-$ergebnisse_pro_seite;
$result = mysqli_query($db,'SELECT `nachricht` FROM `kontakt` LIMIT '.$limit.', '.$ergebnisse_pro_seite);
while ($row = mysqli_fetch_assoc($result)) {
}
for ($i=1; $i<=$gesamt_seiten; ++$i) {
if ($seite == $i) {
echo '<a href="kontakt.php?seite_nr='.$i.'" style="font-weight: bold;">'.$i.'</a>';
} else {
echo '<a href="kontakt.php?seite_nr='.$i.'">'.$i.'</a>';
}
}
include 'footer.html';
?>
</body>
</html>
Kommentar