Blättersystem nächste Seite

dsNDesign

Erfahrenes Mitglied
hi,
ich habe mal wieder ein Problem.
Ich habe folgendes Script, zum Blättern:
PHP:
<?php include_once("db_news.php");

$sql = "SELECT * FROM `news`;";
$eintrage = mysql_num_rows(mysql_query($sql));
$maxproseite = 5;
$i = 0;

$seiten = $eintrage / $maxproseite;

if (!isset($_GET['page'])) {
    $sql = "SELECT * FROM `news` ORDER BY `id` DESC LIMIT 0,".$maxproseite.";";  
} else {
    $abeintrag = $_GET['page'] * $maxproseite - $maxproseite;
    $sql = "SELECT * FROM `news` ORDER BY `id` DESC LIMIT ".$abeintrag.",".$maxproseite.";";
}
$result = mysql_query($sql);
while($row = mysql_fetch_assoc($result)){
    echo '
  <div style="margin-left:10px">
  <b>'.$row['titel'].'</b><br />
  <a class="datum">'.$row['datum'].'</a><br />
  '.$row['text'].'<br /><br /></div>
  <div align="center"><img src="image/grenze.png" alt="gre"/></div><br />';
    }
echo "<br />Seite ";
for($i = 1; $i - 1< $seiten; $i++){
    echo "<a href=\"index.php?section=gb&amp;page=".$i."\">".$i."</a> ";
}
?>

Dabei wird ja unten eine Liste mit den Seiten erstellt. Also 1 2 3.....

ich möchte aber, dass da nur steht nächste Seite und vorherige Seite. Dass man also dadurch immer auf die Seite danach gelangt.
Ich habe es schon mit $i + 1 versucht, aber ich habe es irgendwie falsch gemacht.

Wie mache ich das, dass es auch funktioniert?

PS: Eventuell wäre auch noch Erste Seite und letzte Seite nicht schlecht.
 
Zuletzt bearbeitet:
Ungetestet:

PHP:
?php include_once("db_news.php");

$sql = "SELECT * FROM `news`;";
$eintrage = mysql_num_rows(mysql_query($sql));
$maxproseite = 5;
$i = 0;
$ab =1;
if (isset($_GET['page'])) $ab = $_GET['page'];

$seiten = $eintrage / $maxproseite;

if (!isset($_GET['page'])) {
    $sql = "SELECT * FROM `news` ORDER BY `id` DESC LIMIT 0,".$maxproseite.";";  
} else {
    $abeintrag = $_GET['page'] * $maxproseite - $maxproseite;
    $sql = "SELECT * FROM `news` ORDER BY `id` DESC LIMIT ".$abeintrag.",".$maxproseite.";";
}
$result = mysql_query($sql);
while($row = mysql_fetch_assoc($result)){
    echo '
  <div style="margin-left:10px">
  <b>'.$row['titel'].'</b><br />
  <a class="datum">'.$row['datum'].'</a><br />
  '.$row['text'].'<br /><br /></div>
  <div align="center"><img src="image/grenze.png" alt="gre"/></div><br />';
    }
echo "<br />Seite ";
$i=$ab ;
echo "<a href=\"index.php?section=gb&amp;page=".$i+1."\">Vor zu ".$i+1."</a> ";
echo "<a href=\"index.php?section=gb&amp;page=".$i-1."\">Zurück zu ".$i-1."</a> ";
?>

Mfg Splasch
 
Zuletzt bearbeitet:
Hi,
Danke erstmal.
Es kommt folgender Fehler:
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ',' or ';' in /users/dplace/www/V1/index.php on line 56

Grüße
 
Ich würd gerne mithelfen, was is denn die besagte zeile.
Sei doch so nett und kopier sie mir mal raus.

MFG
Mark Paspirgilis
 
aso ja, wäre klug gewesen.

Zeile 56:
PHP:
echo "<a href=\"index.php?section=gb&amp;page=".$i+1."\">Vor zu ".$i+1."</a> ";
 
PHP:
<?php include_once("db_news.php");

$sql = "SELECT * FROM `news`;";
$eintrage = mysql_num_rows(mysql_query($sql));
$maxproseite = 5;
 
$i = 0;
$ab =1;
if (isset($_GET['page'])) $ab = $_GET['page'];

$seiten = $eintrage / $maxproseite;

if (!isset($_GET['page'])) {
    $sql = "SELECT * FROM `news` ORDER BY `id` DESC LIMIT 0,".$maxproseite.";";  
} else {
    $abeintrag = $_GET['page'] * $maxproseite - $maxproseite;
    $sql = "SELECT * FROM `news` ORDER BY `id` DESC LIMIT ".$abeintrag.",".$maxproseite.";";
}
$result = mysql_query($sql);
while($row = mysql_fetch_assoc($result)){
    echo '
  <div style="margin-left:10px">
  <b>'.$row['titel'].'</b><br />
  <a class="datum">'.$row['datum'].'</a><br />
  '.$row['text'].'<br /><br /></div>
  <div align="center"><img src="image/grenze.png" alt="gre"/></div><br />';
    }
echo "<br />Seite ";
$i=$ab ;
echo "<a href=\"index.php?section=gb&amp;page=".($i+1).">Vor zu ".($i+1)."</a>";
echo "<a href=\"index.php?section=gb&amp;page=".($i-1).">Zurück zu ".($i-1)."</a> ";
?>

Mfg Splasch
 
Hi
es funktioniert fast.
http://www.designers-place.de/V1/index.php
Hier sieht man es.
Habe gerade mal zum testen max pro Seite auf 1 gemacht.
Mann kommt perfekt zur letzen Seite. Aber man kommt da dann nichtmehr auf die vorherige zurück.

EDIT:
Habs nun soweit hinbekommen.
Habs unten so geändert:
PHP:
echo "<a href=\"index.php?section=gb&amp;page=".($i+1)."\">Vor zu ".($i+1)."</a>";
echo "&nbsp;&nbsp;<a href=\"index.php?section=gb&amp;page=".($i-1)."\">Zurück zu ".($i-1)."</a> ";

hab einfach \ in den link eingefügt.
Nur noch eine Frage. Wie kann ich es machen? dass das vor zu und zurück zu nur angezeigt wird, wenn auch eine Seite vorhanden ist oder so. Weil jetzt kann man ja unendlich weit vor und zurück, was ein bisschen blöd ist.
 
Zuletzt bearbeitet:
PHP:
$anzahl_seiten = 1;

if($eintraege > $maxproseite)
{
   $anzahl_seiten = ceil($eintraege / $maxproseite);
}

....

if($i < $anzahl_seiten)
{
   echo "<a href=\"index.php?section=gb&amp;page=".($i+1)."\">Vor zu ".($i+1)."</a>";
}
if($i > 0)
{
   echo "&nbsp;&nbsp;<a href=\"index.php?section=gb&amp;page=".($i-1)."\">Zurück zu ".($i-1)."</a> ";
}

So oder so ähnlich.
 
habs jetzt so:
PHP:
<?php include_once("db_news.php");

$sql = "SELECT * FROM `news`;";
$eintrage = mysql_num_rows(mysql_query($sql));
$maxproseite = 1;
 
$i = 0;
$ab =1;
if (isset($_GET['page'])) $ab = $_GET['page'];

$anzahl_seiten = 1;

if($eintraege > $maxproseite)
{
   $anzahl_seiten = ceil($eintraege / $maxproseite);
}

if (!isset($_GET['page'])) {
    $sql = "SELECT * FROM `news` ORDER BY `id` DESC LIMIT 0,".$maxproseite.";";  
} else {
    $abeintrag = $_GET['page'] * $maxproseite - $maxproseite;
    $sql = "SELECT * FROM `news` ORDER BY `id` DESC LIMIT ".$abeintrag.",".$maxproseite.";";
}
$result = mysql_query($sql);
while($row = mysql_fetch_assoc($result)){
    echo '
  <div style="margin-left:10px">
  <b>'.$row['titel'].'</b><br />
  <a class="datum">'.$row['datum'].'</a><br />
  '.$row['text'].'<br /><br /></div>
  <div align="center"><img src="image/grenze.png" alt="gre"/></div><br />';
    }
$i=$ab ;
if($i < $anzahl_seiten)
{
   echo "<a href=\"index.php?section=gb&amp;page=".($i+1)."\">Vor zu ".($i+1)."</a>";
}
if($i > 0)
{
   echo "&nbsp;&nbsp;<a href=\"index.php?section=gb&amp;page=".($i-1)."\">Zurück zu ".($i-1)."</a> ";
}  
?>

Es funktioniert nicht so ganz.
Momentan müssten auf 2 verschiedenen Seiten jeweils 1 Beitrag sein. Das ist es auch. einmal auf
http://www.designers-place.de/V1/index.php?section=gb&page=1
und der ältere auf
http://www.designers-place.de/V1/index.php?section=gb&page=2
Ich komme von der page=2 perfekt zu 1 zurück und auch nicht weiter, was ja so auch gewollt ist. jedoch komm ich von page=1 nicht auf die Seite 2, jedoch auf page=0 wo ja aber gar nichts steht. Bei page=0 komm ich dann wieder auf 1, von 1 aber nicht auf 2.

Alles, was ich jetzt hier geschrieben habe, kann man sich hier anschauen ;)
http://www.designers-place.de/V1/index.php

Man muss irgendwie so machen, dass die letzte Seite Seite 1 ist und nicht erst 0.

EDIT: Habe gerade mal zum Testen $anzahl_seiten auf 3 gemacht. Jetzt komm ich wieder weiter vor, zu Seite 3. aber die existiert ja auch nicht. Er muss irgendwie selbst erkennen, wieviel Seiten es gibt.
 
Zuletzt bearbeitet:
PHP:
if($i <= $anzahl_seiten)
{
   echo "<a href=\"index.php?section=gb&amp;page=".($i+1)."\">Vor zu ".($i+1)."</a>";
}
if($i > 1)
{
   echo "&nbsp;&nbsp;<a href=\"index.php?section=gb&amp;page=".($i-1)."\">Zurück zu ".($i-1)."</a> ";
}

So sollte es!
 
Zurück