Frage zu Tutorial...

medico

Erfahrenes Mitglied
Hallo ich habe eine Frage zu folgendem Tutorial
http://www.tutorials.de/tutorials6083.html

Vorweg: das ist echt super, klappt soweit wunderbar...

So nun zu meiner Frage...wenn ich jetzt z.B mit dem Script 8 Einträge in der DB finde wird mir das super aufgelistet, habe gesagt 4 Einträge pro Seite....nun werden mir aber 3 Seiten ausgegeben...wieso und warum fängt es unten bei den Links zur nächsten Seite bei 0 an zuzählen und nicht bei 1?

Gruß Medico
 
Wieso er unten bei Null anfängt zu zählen weiß ich auch nicht, ist bei meinem Script auch so, hab ich aber auch anders bzw. selber gescripted :/ .
Also wenn jmd. einen Plan hat, bitte schnell antworten!
 
Ich denke mal, dass die Schleifen bei 0 beginnen.

Poste doch einfach mal etwas Code, dann ist es wesentlich einfacher zu erklären...
 
Hier der Code:
PHP:
<?PHP
$sqlhost=' ';
$username=' ';
$passwort=' ';
$database=' ';
$proseite=10;

$db = mysql_connect ($sqlhost,$username,$passwort);
mysql_select_db ($database);
$sql = "SELECT * FROM table";
$result = mysql_query($sql,$db);
$number = mysql_num_rows($result);
$seiten=floor($number/$proseite);
$start=$page * $proseite;
$sql="SELECT * FROM table LIMIT $start,$proseite";
$result = mysql_query($sql,$db);
$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 ($row = mysql_fetch_array($result)) { 
	echo "Eintrag von: ".$row['Name']." <BR> \n";
	echo $row['Eintrag']."<BR> \n";
	}
if ($page>0) {
	$i=$page-1;
	echo "<A HREF=\"guestbook.php?page=$i\">&lt;previous</A>";
}
for($i=0; $i<=$seiten; $i++) {
	if ($i==$page) {
		echo $i."&nbsp;";
	}
	else {
		echo "<A HREF=\"guestbook.php?page=$i\">$i</A>&nbsp;";
	}
}
if ($page<$seiten) {
	$i=$page+1;
	echo "<A HREF=\"guestbook.php?page=$i\">next&gt;</A>";
}
?>

Gruß Medico
 
Er fängt bei 0 an, weil du es ihm nicht anders gesagt hast ;)

Hier ein Lösungsansatz:

Also erstmal beginnt er bei Seite 0, da du eine Multiplikation mit einem Wert machst, der 0 ist(nicht gesetzt)
PHP:
$start=$page * $proseite;
$page ist naemlich auf der ersten Seite nicht gesetzt.

Setzte einfach folgendes vor deinen Code:
PHP:
 if(!isset($_GET['page']) || $_GET['page']=='')
{
  $page=1;
}
So, dann musst du noch dir for() Schleife abändern, damit er von 1 an anfängt zu zählen:
PHP:
for($i=1; $i<=$seiten; $i++)
{
  if ($i==$page)
  {
    echo $i."&nbsp;";
  }
  else
  {
    echo "<a href=\"guestbook.php?page=".$i."\">$i</a>&nbsp;";
  }
}
 
Danke Lars,

wenn ich das jetzt so mache wird mir die nullseite nicht angezeigt....aber sie existiert und dort sind die ersten 4 Einträge versteckt....
Die Links beim Suchergebnis werden so angezeigt
zurück 1 2 vorwärts
und wenn ich dann auf zurück klicke komme ich auf Seite 0
 
Zurück