Blätterfunktion Denkanstoss

Methos

Erfahrenes Mitglied
hab jetzt mal eine kleine Blätterfunktion geschrieben, allerdings komm ich bei der Anzeige der Seiten nicht mehr weiter. Es sollte so aussehen z.b.
1 2 3 4 5 letzte

Also immer nur 5 Seiten anzeigen. Klick ich auf 5 dann soll ers so darstellen.
5 6 7 8 9 letzte usw.

Der Code von mir zeigt mir im moment aber noch alle Seiten an. Sind zwar noch nicht soooviele. Aber wenns mal 50 werden siehts eben nicht mehr so gut aus und wird unübersichtlich. Vielleicht hat hier einer nen kleinen Tipp für mich?
Hab mir auch schon ein paar Tutorials angeschaut aber bin halt doch noch ein Anfänger :(


PHP:
$ausgabe = "5"; // Anzahl der Beitraege pro Seite
$seite =ceil($zaehler/$ausgabe); //Gesamtzahl der Seiten
$startwert = "1"; // Festgelegter Startwert
$endwert = bcsub($seite*$ausgabe,$ausgabe); // Endwert
$seite--;

for($count = $startwert; $count <= $seite; $count++)
  {
    $seitenzahl = bcsub($count*$ausgabe,$ausgabe);



//if Abfrage damit aktuelle Seite fett dargestellt wird

        if ($seitenzahl==$lim)
          echo "<b>| $count |</b>";
        else
          echo "<a href='gaestebuch-$seitenzahl.html'> $count </a>";
  }

//Ausgabe der letzten seite
if ($endwert!=$lim)
  echo "<a href='gaestebuch-$endwert.html'> letzte </a>";
else
  {
    $seite++;
    echo "<b>| $seite |</b>";
  }
 
PHP:
if (($seitenzahl >= $lim - 2) && ($seitenzahl <= $lim + 2) {
    // do echo-job
    }

Mamphil
 
Zuletzt bearbeitet:
hmm danke für deine Antwort aber so ganz versteh ichs noch nicht :(

Es hat auch noch ein ")" gefehlt ;) Aber vielleicht brauch ich noch einen größeren Schubser als ich Anfangs dachte.
 
Hi!

Du willst zwei Seitenzahlen "links" von der aktuellen Seite anzeigen, also kleinere. Die anzuzeigenden müssen also größer sein, als die aktuelle - 2. Das gleiche gilt für rechts.
Ich verbessere meinen Vorschlag... die Bedingungen müssen mit UND (&&) verknüpft werden.

Mamphil
 
ne also was die Zeile macht versteh ich schon, nur entweder steh ich im moment komplett auf der Leitung denn ich komm damit auch nicht zurecht. Wie gesagt bin noch a Anfänger :(
 
Hi!

Du musst einfach statt der Ausgabe die bedingte Ausgabe (wie in meinem Beispiel) machen. Dann wird nur das ausgegeben, was du haben willst.

Mamphil
 
aber irgendwie ergibt das immer noch keinen Sinn für mich. Ich habs mal eingebaut aber ich erhalte dann nur eine einzige Seite und nicht 5 zur Auswahl. hmm entweder ich steh mächtig auf der Leitung oder da stimmt was noch ned
 
Hi!

Dann poste mal deinen korrigierten Quellcode.

1.) Du arbeitest mit Zahlen. Wieso stehen diese in Anführungszeichen? Wieso sind es (also) Strings?
2.) $lim wird nie definiert.

Mamphil
 
$lim wird immer via Get an die nächste Seite übergeben und ist die Zahl der Einträge die mysql abfragen muß bzw. ab wann usw.
 
Hi!

Hilft das?
PHP:
<?php
// Beispiel: Ich bin auf Seite 1, wenn keine Seite per GET übergeben wird:
if (isset($_GET['seite']) && is_numeric($_GET['seite']))
	$seite = $_GET['seite'];
else 
	$seite = 1; 
// Es gibt insgesamt 43 Seiten
$anz_seiten = 43;
// Anzahl der anzuzeigenden Seitenzahlen (sollte ungerade sein):
$zeige_seiten = 5;

// Wieviele Seitenzahlen werden links / rechts neben der aktiven Zahl gezeigt?
$zeige_links = floor($zeige_seiten / 2);
$zeige_rechts = $zeige_seiten - $zeige_links - 1;

// Wenn die aktive Zahl ganz am Anfang oder Ende steht: passe die Anzahl der links / rechts stehenden Zahlen an:
if ($seite - $zeige_links < 1) {
	$zeige_links = $seite - 1;
	$zeige_rechts = $zeige_seiten - $zeige_links - 1;
	}
else if ($seite + $zeige_rechts > $anz_seiten) {
	$zeige_rechts = $anz_seiten - $seite;
	$zeige_links = $zeige_seiten - $zeige_rechts - 1;
	}

// Link "Anfang" anzeigen:
if ($seite > ceil($zeige_seiten / 2))
	echo '<a href="'.$_SERVER['PHP_SELF'].'?seite=1">&lsaquo;&lsaquo;</a> ';

for ($i = 1; $i <= $anz_seiten; $i++) {
	if (($i >= $seite - $zeige_links) && ($i <= $seite + $zeige_rechts)) {
		if ($i == $seite) 
			echo '<b>'.$i.'</b>';
		else
		 	echo '<a href="'.$_SERVER['PHP_SELF'].'?seite='.$i.'">'.$i.'</a>';
		echo ' ';
		}
	}

// Link "Ende" anzeigen:
if ($seite <= $anz_seiten - ceil($zeige_seiten / 2))
	echo '<a href="'.$_SERVER['PHP_SELF'].'?seite='.$anz_seiten.'">&rsaquo;&rsaquo;</a>';

?>

Mamphil
 
Zurück