Antworten auf deine Fragen:
Neues Thema erstellen

seitenzahlnavi wie google

Kumaro

Nicht mehr ganz neu hier

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

// 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 :(
 

saila

Moderatorle

AW: seitenzahlnavi wie google

Hi,

also das zu lesen ohne Einrückungen ist schon eine Zumutung. Andere Frage, warum arbeitest du nicht mit LIMIT in deinem query?

Rück mal entsprechend ein und setze [ php ] ... script [ / php ] ein. Dann kann man das ganze auch besser lesen.
 

Chickenshooter

Alter Mann

AW: seitenzahlnavi wie google

Moin,

Ich denke Du meinst so Etwas hier

PHP:
<?php

/* Das CSS für die Links und den Span wenn link active */
print <<<STYLE
<style>
    .sIndex { display:inline-block; text-align:center; color:red; }
    span.sIndex{color:black; font-weight:bold;}
</style>
STYLE;

/* nach links und rechts max 5 Zahlen*/
$mxL = $mxR = 5;

/*Checken on $_GET['i'] gestzt*/
$cI = isset($_GET['i'])?$_GET['i']:1;

/* wo fängt die Schleife an */
$z = $cI>$mxL?$cI-$mxL:1;

/* und wo endet sie */
$to = $cI+$mxR;

/* die Schleife */
for ($a=$z; $a<=$to; ++$a)
{
    /* breite der inline-blocks anpassen an Zahlenlänge */
    $w = 'style="width:'.(15 + 6 * strlen(strval($a))).'px;"';
    if ($cI==$a)
        $o.='<span class="sIndex" '.$w.'>'.$a.'</span>';
    else
        $o.='<a class="sIndex" '.$w.' href="?i='.$a.'">'.$a.'</a>';
}

/* Die Ausgabe */
echo sprintf("<div>%s</div>",$o);

?>
läuft super das Teil (... ist ja auch von mir ;-) )

MfG Chick
 
Zuletzt bearbeitet:

pain2000

Nicht mehr ganz neu hier

AW: seitenzahlnavi wie google

so ähnlich hab ich das auch immer gemacht... aber dein snippet ist etwas schöner:p
ich gleub ich werd meine mal umbauen...
 

Kumaro

Nicht mehr ganz neu hier

AW: seitenzahlnavi wie google

hi ja meine schon sowas nur ich suche eben den fehler bei mir.... ist nicht super schön aber wenn ich sowas schn baue soll es auch wenigstens funktionieren :(
 

Chickenshooter

Alter Mann

AW: seitenzahlnavi wie google

was willst Du hiermit erreichen???
PHP:
//Aktuelle Seite herausfinden
  $aktuell = $_GET['s'] / $intervall;
  $aktuell = explode(".",$aktuell);
  $aktuell = $aktuell[0]+1;
und woher kommt die variable $interval ?

wenns darum geht eine Zahl draus zumachen

PHP:
$aktuell = intval($_GET['s']);

Du musst schon eine linke und eine rechte Grenze festlegen

auf die Du Dich dann in Deinem Script beziehst.

Es soll dann so sein das immer nur max. 5 zahlen vor der aktuellen seite und 5 nach der aktuellen seite angezeigt werden

in meinem script

PHP:
$mxL = $mxR = 5;

d.h. links und rechts je 5 Zahlen, kann soetwas in Deinem Script nicht finden.

MfG
 
Zuletzt bearbeitet:
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Keine Mitglieder online.

Statistik des Forums

Themen
118.565
Beiträge
1.538.067
Mitglieder
67.488
Neuestes Mitglied
Andrew56524
Oben