seitenzahlnavi wie google

Kumaro

Mitglied
Hi Leute ich habe mal wieder ein Problemchen was ich mir einfach nicht erklären kann... ich hoffe ihr könnt mir helfen.

Ich habe versucht ein kleines script zu schreiben das eine seitenzahlnavigation ähnlich wie bei google erzeugt. Also das Seite 1 2 3 4 usw angezeigt wird dabei die aktuelle seite schwarz gemacht (also ohne link) und die anderen rot (mit hyperlink). Es soll dann so sein das immer nur max. 5 zahlen vor der aktuellen seite und 5 nach der aktuellen seite angezeigt werden (hier testeshalber immer nur 2).

Doch das Problem ist jetzt das er auf der letzten seite (hier seite 4) komische werte hat .

hier erst mal der quellcode

PHP:
<?
// Navigationsseiten

  $result = mysql_query("SELECT * FROM Events ");
  $num = mysql_num_rows($result);
  $maxanzeige_links = 0;
  $maxanzeige_rechts = 0;

//Aktuelle Seite herausfinden
  
  $aktuell = $_GET['s'] / $intervall;
  $aktuell = explode(".",$aktuell);
  $aktuell = $aktuell[0]+1;
  
    
  for($i=0, $seite=1; $i<=$num; $i=$i+5, $seite++) {
    
    //Ausgabe Seiten vor der aktuellen Seite
   
      if ($seite < $aktuell ) {
             if ( $maxanzeige_links <= 1) {
                    echo ("&nbsp; <a href='http://www.2ndrb.de/ga-town/index.php?goto=events_anzeigen&navi=events&s=$i'>$seite</a>&nbsp; ");
                    $maxanzeige_links = $maxanzeige_links +1;               }
      }
    
   
    //Ausgabe aktuellen Seite
          if ($seite == $aktuell ) { 
                echo ($seite);            }    
    
    //Ausgabe Seiten nach der aktuellen Seite
        if ($seite > $aktuell ) { 
                   if ( $maxanzeige_rechts <= 1) {
                             echo ("&nbsp; <a href='http://www.2ndrb.de/ga-town/index.php?goto=events_anzeigen&navi=events&s=$i'>$seite</a>&nbsp; ");
                             $maxanzeige_rechts = $maxanzeige_rechts +1;                  }       }
   
   }   

?>

--> Bis zur seite funktioniert alles wunderbar nur auf der letzten seite wo folgende variabeln folgende werte haben sollten

$aktuell = 4 doch er hat dann auf einmal den wert 16 und ich kann mir nicht erklären warum.....

Zur info in der DB sind 16 einträge.... Irgendwie funktioniert die berechnung auf der letzten seite nicht

$aktuell = $_GET['s'] / $intervall;
$aktuell = explode(".",$aktuell);
$aktuell = $aktuell[0]+1;

--> Wieso geht es auf den 3 seiten vorher und auf der letzten nicht mehr ich hoffe ihr könnt mir irgendwie helfen :(
 
Zuletzt bearbeitet von einem Moderator:
Hi,

ok hab ich ich hoffe ist ok so :)

das Einrücken ja, aber PHP-Tags vermisse ich immer noch, dabei gibt's für die doch extra einen Button...

--> Bis zur seite funktioniert alles wunderbar nur auf der letzten seite wo folgende variabeln folgende werte haben sollten

$aktuell = 4 doch er hat dann auf einmal den wert 16 und ich kann mir nicht erklären warum.....

Zur info in der DB sind 16 einträge.... Irgendwie funktioniert die berechnung auf der letzten seite nicht

$aktuell = $_GET['s'] / $intervall;
$aktuell = explode(".",$aktuell);
$aktuell = $aktuell[0]+1;

Was ist denn das für eine abenteuerliche Berechnung? Gib bitte mal den Inhalt von $_GET['s'] und $intervall an, sonst kann man nur raten...

LG
 
ok danke ich werds mir mal anschauen -.. auf den begriff blätterfunktion bin ich gar nicht gekommen :D.... aber das muss auch so gehen :P ich will ja das funktioniert was ich mir baue :P...

also die berechnung macht folgendes
$intervall = 5 // also 5 ausgaben pro seite
$_GET['s'] = 0 oder 5 oder 10 oder 15 usw // ist die angabe im browser die nach dem LIMIT in der SQL query angibt welche datensätze auszugeben sind

Beispiel: für seite 3 wenn intervall zb 4 ist

$aktuell = $_GET['s'] / $intervall ;
$aktuell = 10 / 4;

$aktuell = explode(".",$aktuell);
$aktuell = explode(".",2.5);

$aktuell = $aktuell[0]+1;
$aktuell = 2+1;


du kannst es dir ja mal anschauen auf seite 4 kommen die fehler......
http://www.2ndrb.de/ga-town/index.php?goto=events_anzeigen&navi=events&s=20
 
Zuletzt bearbeitet:
Hi,

ok danke ich werds mir mal anschauen -.. auf den begriff blätterfunktion bin ich gar nicht gekommen :D.... aber das muss auch so gehen :P ich will ja das funktioniert was ich mir baue :P...

das ist ansich eine löbliche Einstellung. Nur ist leider die Logik in Deiner Schleife völlig konfus und für mich zumindest nicht nachvollziehbar. Schau Dir Gumbos Tutorial mal in Ruhe an. Du musst das ja nicht 1:1 übernehmen, sondern kannst Dein Script nach der Logik umschreiben.

also die berechnung macht folgendes
$intervall = 5 // also 5 ausgaben pro seite
$_GET['s'] = 0 oder 5 oder 10 oder 15 usw // ist die angabe im browser die nach dem LIMIT in der SQL query angibt welche datensätze auszugeben sind

Beispiel: für seite 3 wenn intervall zb 4 ist

$aktuell = $_GET['s'] / $intervall ;
$aktuell = 10 / 4;

$aktuell = explode(".",$aktuell);
$aktuell = explode(".",2.5);

$aktuell = $aktuell[0]+1;
$aktuell = 2+1;


du kannst es dir ja mal anschauen auf seite 4 kommen die fehler......
http://www.2ndrb.de/ga-town/index.php?goto=events_anzeigen&navi=events&s=20

Du solltest eigentlich Testausgaben von $_GET['s'] und $intervall machen. Die Berechnung sollte nämlich, so abenteuerlich sie auch ist, funktionieren.

Ein besserer Weg wäre

PHP:
$aktuell = floor(intval($_GET['s'])/$intervall) + 1;

Wenn Du mit Zahlen rechnen willst, dann tu das und murks da nicht mit einem Array rum. ;)

LG
 
Zurück