Gästebuch - Einträge pro Seite begrenzen

Zneaf

Erfahrenes Mitglied
Hey Leute ;)

ich habe vor ein paar Tagen ein PHP Gästebuch mit MYSQL Datenbank programmiert und stehe jetzt vor einem Problem.

Ich möchte die Anzahl der Gästebucheinträge unbedingt auf ein Maximum von 10 pro Seite begrenzen. Das ganze sollte automatisch geschehen, da es zu viel Aufwand wäre, das ganze dauernd selbst ab zu ändern. Dazu sollte dann jeweils ein Link kommen, über den man auf die nächste bzw. vorige Seite gelangt, um die Beiträge lesen zu können.

Hier mein bisheriger Code:
PHP:
<?php
session_start();

if($_SESSION['loggedIn'] != true){
	echo "<meta http-equiv='refresh' content='0; url=index.php?site=accessdenied'>";
}else{
?>

<html>
<head>
<title>Gästebuch</title>
</head>
<body link="#333333" vlink="#333333" alink="#333333">
<img src="/images/gbook_head.jpg" width="526" height="26"><br><br>

<!-- Auslesen der eingegebenen Daten des Guestbooks -->
<?php
if ( array_key_exists('submit', $_POST) ) {

	require_once("gbookconfig.php");
	
	$name = $_SESSION['username'];
	$day = date("d");
	$month = date("m");
	$year = date("Y");
	$hour = date("H");
	$minute = date("i");
	$eintrag = trim(strip_tags(stripslashes($_POST['eintrag'])));
	$eintrag = htmlentities($eintrag);
	$eintrag = str_replace("\n", "<br>", $eintrag);

// SQL-Anweisung basteln, um Daten in der DB-Tabelle einzufuegen
	if ($eintrag == "") {
		echo "<meta http-equiv='refresh' content='0; url=index.php?site=gbookuncomplete'>" ;
	}else {
	
		require_once("gbookconfig.php");
		
		$sql = "INSERT INTO gbook
			(
			name, day, month, year, hour, minute, eintrag
			) VALUES (
			'". mysql_escape_string($name) ."',
			'". mysql_escape_string($day) ."',
			'". mysql_escape_string($month) ."',
			'". mysql_escape_string($year) ."',
			'". mysql_escape_string($hour) ."',
			'". mysql_escape_string($minute) ."',
			'". mysql_escape_string($eintrag) ."'
			)";

			// SQL-Anweisung an die DB schicken und im Fehlerfall eine Meldung ausgeben
			$res = mysql_query($sql) or exit( __LINE__.', '.__FILE__.'<br />' .mysql_error());
				
			// Wenn kein Fehler aufgetreten ist auf die Startseite weiterleiten
			echo "<meta http-equiv='refresh' content='0; url=index.php?site=gbook'>" ;
	}
}
?>

<!-- Eingabemaske des Gästebuchs -->
<center>
<form action="<?php $_SERVER['PHP_SELF']; ?>" method="post">
<table width="500" table="0" cellspacing="0" cellpadding="2">
	<tr>
		<td><font face="Arial" color="#333333" size="+1">Eintrag schreiben:</font></td>
	</tr>
	<tr>
		<td><textarea name="eintrag" rows="5" cols="55"></textarea></td>
	</tr>
	<tr>
		<td><input type="submit" name ="submit" value="schreiben">&nbsp;<input type="reset" value="abbrechen"></td>
	</tr>
</table>
<br><hr>
</form>

<?php

	require_once("gbookconfig.php");
	// Daten aus Datenbank abholen und absteigend nach id sortieren.
	$sqlerg = "SELECT * FROM gbook
			ORDER BY id DESC";
	
	$sqlres = mysql_query($sqlerg) or die("Error: " . mysql_error());
	
	// Solange wie daten ausgelesen werden können,
	// sollen sie in der Variablen "$daten" gespeichert werden
	// und über eine while - schleife ausgegeben werden.
	while($daten = mysql_fetch_object($sqlres)){
        echo "<table border=\"0\" width=\"500\" cellspacing=\"0\" cellpadding=\"0\">
				<tr>
					<td width=\"90%\"><font face=\"Arial\" color=\"#333333\"><b>$daten->name</b> <i>(am $daten->day.$daten->month.$daten->year um $daten->hour:$daten->minute Uhr)</i></font></td>
					<td width=\"10%\"><font face=\"Arial\" color=\"#333333\"><b>#$daten->id</b></font></td>
				</tr>
			</table>
			<br>
			<table border=\"0\" width=\"500\" cellspacing=\"0\" cellpadding=\"0\">
				<tr>
					<td width=\"100%\"><font face=\"Arial\" color=\"#333333\">$daten->eintrag</font></td>
				</tr>
			</table>
			<hr>
		";
    } 
?>

</center>
</body>
</html>

<?php
}
?>

Hat jemand eine Ahnung, wie ich meinen Code abändern müsste, um dies zu realisieren?

Solltet ihr noch Fragen haben, so zögert nicht, mich zu fragen :D

Hoffe ihr könnt mir helfen.

LG Zneaf
 
Also generell brauchst du dazu die LIMIT Angabe in der Abfrage, damit kannst du dann auf z.B. 10 Datensätze beschränken.

Suche einfach mal im PHP Forum nach "blättern" oder "Blätterfunktion". Da findest du mehr als genug Beispiele dafür.
 
Hallo,

Ich würde so rangehen

1. Anzahl der Datensätze in deiner Datenbank auslesen
2. Anzahl der Seiten mit 'x' Einträgen errechnen
3. Die 'x' Einträge abfragen mit Limit
4. Die Seitenzahl ausgeben und per $_GET Parameter die Seitenzahl bzw den nächsten Datensatz (ab wann die nächsten Einträge ausgelesen werden sollen) verlinken / übergeben.

Oder

Wie tombe geschrieben hat nutzt du die Suchfunktion :)
 
Zurück