[PHP] Seiten auflisten

unregiert

abgemeldet
22 April 2006
451
26
Ich hatte irgendwie schon immer Probleme, die Seiten "anzuzeigen". Nun, heute habe ich es mal versucht - und bin gescheitert. Bei Seite 1 und zwei sieht es anfänglich noch schön aus, aber dannach ist es komplett falsch.
PHP:
// Siteid deffinieren
if(isset($_GET['site'])) {
  $akt_site = $_GET['site'];
} else {
  $akt_site = 1;
}
// Sites generieren
if($akt_site == 1)
{
  $print_site .= "(" . $akt_site . ")";
  for($x = 2; $x < 6; $x++)
  {
    if($x <= $sites)
    {
      $print_site .= " (<a href=\"?site=" . $x ."\">" . $x . "</a>)";
    }
  }
}
if($akt_site > 1)
{
  for($x = 1; $x < 4; $x++)
  {
    $siteid = ($akt_site - $x);
    if($siteid >= 1)
    {
      $print_site .= "(<a href=\"?site=" . $siteid ."\">" . $siteid . "</a>) ";
    }
  }
  $print_site .= "(" . $akt_site . ")";
}

(1) (2) (3) (4) (5)
Alles richtig: Die aktuelle Seite + die folgenden, möglichen vier Seiten werden angezeigt
(1) (2)
Seite 2: Die vorige Seite wird angezeigt, die folgenden, möglichen zwei Seiten werden bald angezeigt (nicht fertig geproggt)
(2) (1) (3)
Seite 3: Ab da wird es "falsch" angezeigt:
(3) (2) (4)
Und da.
(4) (3) (5)

Nun, wie ihr seht, habe ich einige Probleme - Gibt es eine fertige Funktion, die die Seiten von alleine erstellt?
 
Warum so kompliziert mit ner Fallunterscheidung ? Ich versteh deinen Code irgendwie überhaupt ned :hö:

PHP:
$page=(isset($_GET['page'])) ? $_GET['page'] : 1;

for($i=1;$i<=$page_count;$i++)
{
  if($i==$page)
    echo "($i) ";
  else
    echo "<a href=\"script.php?page=$i\">$i</a> ";
}
 
Bei deinem Code zählt er alle Seiten auf - Ich möchte es jedoch wie bei Klamm.de haben - die vorherigen/kommenden zwei Seiten ;)
 
unregiert schrieb:
Bei deinem Code zählt er alle Seiten auf - Ich möchte es jedoch wie bei Klamm.de haben - die vorherigen/kommenden zwei Seiten ;)
Ok, dann modifier ich meinen Code ein bisschen:
PHP:
$page=(isset($_GET['page'])) ? $_GET['page'] : 1;

for($i=$page-2;$i<=$page+2;$i++)
{
  if($i<1 || $i>$page_count) continue;

  if($i==$page)
    echo "($i) ";
  else
    echo "<a href=\"script.php?page=$i\">$i</a> ";
}
Trotzdem bleibt es nur eine Schleife ;)