Mal wieder Blätterfuntion --> Probleme mit Ausgabe

BSA

Erfahrenes Mitglied
Hi Leute!

Ich habe folgendes Problem, und zwar geht es mal wieder um eine Blätterfunktion, keine Angst, das Forum habe ich durchsucht und bei google.de habe ich auch genügend Traffic verursacht.

Die Blätterfunktion an sich ist ja kein Problem, es geht nur um die Ausgabe der Links.

Also die Ausgabe soll wie folgt aussehen:

Wenn man auf der ersten Seite ist:

(1) 2 3 4 5 6 7 8 9 10 11

Wenn man auf irgendeiner Seite zwischen drin ist:

5 6 7 8 9 (10) 11 12 13 14 15

Und wenn man auf der letzten Seite ist:

39 40 41 52 43 44 45 46 47 48 49 (50)


Das heißt also das immer 11 Links ausgegeben werden. Wenn man auf der ersten Seite ist, dann 10 Links neben der aktuellen Seite, wenn man irgendwo mitten drin ist, dann 5 Links links von der aktuellen Seite und 5 rechts davon. Und wenn man auf der letzten Seite ist, dann eben 10 Links rechts von der aktuellen Seite. Und irgendwie tue ich mich ziemlich schwer mit der Umsetzung, ich habe schon versucht das irgendwie mit Arrays zu machen, aber ich habe es nicht hinbekommen und gleich wieder verworfen.

Also, wenn jemand für mich einen guten Tipp hat wie ich etwas näher an meine Lösung herankomme, bitte einfach mal Posten.

Vielen Dank schon im voraus, wenn ich das Script fertig bekommen sollte, werde ich ein Tutorial verfassen.

Gruß BSA
 
Zuletzt bearbeitet:
forsterm hat gesagt.:

Ich bin dir ja sehr Dankbar das du mir diesen Link gegeben hast, aber diese Seite habe ich schon so oft empfohlen bekommen.

Nur leider wird dort nicht mein oben geschildertes Problem gelöst.
Der letzte Absatz in diesem Artikel sagt das auch schon aus:

So das wars dann auch mit der Blätterfunktion, ich hoffe sie hilft euch weiter wenn ihr z.B. ein Gästebuch erstellen wollt. Aber ihr müsst aufpassen, das ihr nich zuviele Seiten habt, denn wenn dort 100 Links zu 100 Unterseiten sind, sieht das nicht besonders gut aus. Aber wie man das Problem löst, erfahrt ihr später, denn das ist gar nicht so leicht.
 
Wenn es euch hilft wenn ich ein bisschen Code mit ranhänge, dann hier:

PHP:
<?php
 function pager($dfield,$entrypp = 15) { 	

 	global $page;
 	$page = $_GET['page'];
	
 	function limitSQL($entrypp = 15) {

 		global $page;	 	
 		
		if (!$page || $page < 1) {
			
	        $page = 1;
	        
	    } 
	    
	    $min = ($page - 1) * $entrypp; // Startwert ermitteln
	    $max = ($min - 1)  + $entrypp; // Der Endwert ist der Startwert - 1 + Eintraege

	    $out = array($min,$max);
	    
	    return $out;  
    
 	}
 	
 	$pages = ceil($dfield / $entrypp);
 	$output = "<table height='25' border='0' cellspacing='2' cellpadding='0'><tr>";
 	$output .= 'Du befindest dich auf Seite ' . $page . ' von ' . $pages;
 	$output .= '<br /><br />';
 	if ($page > 1) {
        $output .= "<td class=''><a href=\"".$_SERVER["PHP_SELF"]."?page=".($page-1)."\"><</a></td> ";
    } else {
        $output .= "<td><</td> ";        
    }
    if($page > 20) {
    	$output .= "<td class='navFastPrevNext'><a href=\"".$_SERVER["PHP_SELF"]."?page=".($page-20)."\"><<</a></td> ";
    } else {
    	$output .= "<td><a href=\"".$_SERVER["PHP_SELF"]."?page=".($page-$page+1)."\"><<</a></td> ";
    }
    
    
	// Hier müsste dann in irgendeiner Weise die restliche Ausgabe mit hin.
    
    
    if($page < $pages - 20) {
    	$output .= "<td><a href=\"".$_SERVER["PHP_SELF"]."?page=".($page+20)."\">>></a></td> ";
    } else {
    	$output .= "<td><a href=\"".$_SERVER["PHP_SELF"]."?page=".($page+($pages-$page))."\">>></a></td> ";
    }    	
    if ($page <= $pages-1) {
        $output .= "<td><a href=\"".$_SERVER["PHP_SELF"]."?page=".($page+1).">></a></td> ";
    } else {
        $output .= "<td>></td> ";
    } 	
    $output .= "</tr></table>"; 	
 	
    
    
 	echo $output;
 	
}
?>

Aufrufen kann man das ganze wie folgt:

PHP:
$dfield = 500;              // Gibt die Anzahl der Datensätze an (wird noch ersetzt
pager($dfield,10);
$sql = limitSQL(10);
 
Zurück