Problem mit Seitenfunktion

livestrong

Grünschnabel
Hallo Leute!

Ich hoffe mir kann hier jemand helfen, komm leider selbst nicht weiter.

Ich hab ein Gästebuch erstellt das funktioniert, jetzt wollte ich es laut dem Tutorial: http://www.tutorials.de/php-tutorials/6083-gaestebuch-auf-mehrere-seiten-verteilen.html

auf mehrer Seiten verteilen. Nun habe ich leider folgendes Problem:

Ich habe 16 Beiträge die er auch erkennt, er legt mir die ersten 10 Beiträge wie gewünscht auf die erste Seite.

Das Problem:
Ich kann nicht auf die 2. Seite wechseln. Die Weiter-Schaltbuttons funktionieren nicht und wenn ich bei der URL "...zeigen.php?page=2" eingebe, komme ich immer auf die Seite 1 bzw. 0.

Hier noch der Code:
PHP:
<?php
include('datenbank.php');
$proseite=10;

$sql = "SELECT * FROM gbuch";
$result = mysql_query($sql);
$number = mysql_num_rows($result);
$seiten = floor($number/$proseite);
$start = $page * $proseite;
$sql_1 = "SELECT * FROM gbuch LIMIT $start,$proseite";
$result_1 = mysql_query($sql_1);
$ende = $start + $proseite;


if ($ende>$number) { $ende = $number; }
echo "Zur Zeit sind $number Einträge im Gästebuch <br /> \n";
echo "Seite $page - Einträge von $start bis $ende <br /> \n";


while($db3 = mysql_fetch_array($result_1)){
echo '
<table border="1" cellspacing="1" id="nachricht" width="387">
<tr>
<td width="269">'.$db3[username]. '</td>
<td width="105">20.06.2006</td></tr>
<tr>
<td colspan="2">'.$db3[homepage]. '</td>
</tr>
<tr>
<td colspan="2">'.$db3[nachricht]. '<td>
</tr>
</table><p>
';
}
if ($page>0) {
	$i=$page-1;
	echo "<A HREF=\"zeigen.php?page=$i\">&lt;previous</A>";
}
for($i=0; $i<=$seiten; $i++) {
	if ($i==$page) {
		echo $i."&nbsp;";
	}
	else {
		echo "<A HREF=\"zeigen.php?page=$i\">$i</A>&nbsp;";
	}
}
if ($page<$seiten) {
	$i=$page+1;
	echo "<A HREF=\"zeigen.php?page=$i\">next&gt;</A>";
}
?>

Ich hoffe mir kann jemand helfen!

Danke im Voraus.
 
Ab PHP 5 kannst du nicht mehr direkt mit $page auf aif den Parameter der URL zugreifen.

PHP:
//$page aus der URL auslesen. Wenn diese nicht vorhanden ist, den defualt-Wert 1 verwenden
$page=in_array('page') ? $_GET['page'] : 1;

Zudem solltest du alle Keys mit denen du auf den Array zugreiffst in ' oder " setzen
PHP:
echo 'gekürzt <td>'.$db3['username']. '</td>;
 
Hallo!
Erstmals danke für die schnelle Antwort.
Ich hab die Zeile eingefügt, nun kommt aber leider folgender Fehler:

Warning: in_array() expects at least 2 parameters, 1 given in Z:\xampp\htdocs\zeigen.php on line 16
(Line 16: ist dein Code)

Darunter wird aber das Gästebuch richtig angezeigt, nur die Navigation funktioniert nicht.
Zum Glück geht schon folgendes: Wenn ich bei deinem Code die Zahl 1 ändere, hüpft er schon auf die richtige Seite.
 
Mein Fehler. Habe 2 Dinge kombiniert während dem schreiben und dann die hälfte vergessen.
$_GET muss man natürlich ebenfalls der Funktion in_array() mitgeben
PHP:
$page=in_array('page', $_GET) ? $_GET['page'] : 1;
 
Oke super danke, der Fehler ist jetzt behoben, aber die Navigation funktioniert leider noch nicht.

$page=in_array('page', $_GET) ? $_GET['page'] : 1;
Also wenn ich bei deinem Code 0 eingebe, zeigt er mir die ersten 10 Beiträge an wie gewünscht, wenn ich 1 eingebe, zeigt er mir die nächsten 6 an, aber ich kann in die URL reinschreiben, was ich will, es verändert sich nichts.
Bei der Navigation ändert er die URL, aber die Einträge bleiben immer die gleichen.

Ich hoffe du weißt was gemeint ist.
 
mööööp - ich sollte zuerst endgültig gesunden bevor ich hier poste. Meine Scriptzeile hat ja immer noch 2 Fehler drin.

1) Default sollte nicht 1 sondern 0 sein
2) mit in_array() sucht man in den Werten des Arrays. Wir sollten aber in den Keys nach 'page' suchen

PHP:
$page=array_key_exists('page', $_GET) ? $_GET['page'] : 0;
 
Jawooohll! Jetzt funktionierts danke.
Jetzt hab ich nur noch 1 Frage und zwar, wo muss ich jetzt was ändern, damit die Seiten bei 1 anfangen. Ich hab mich schon bei anderen Einträgen eingelesen und hab auch was ausprobiert, aber das funktioniert nicht ganz richtig.
 
Zurück