phpbar.de logo

Mailinglisten-Archive

[php] Auflistung...

[php] Auflistung...

Joerg H. Baach jbaach_(at)_mediathek.de
Thu, 04 Mar 1999 18:30:46 +0100


Alexander Meis wrote:
> 
> Hi....
> 
> wie kann ich es hinnbekommen das wenn ich eine grosse datenbank habe die mir
> 100derte
> ausgaben zurückliefert ich am ende so einen index habe der mich auf weiter
> ergebnisseiten leitet.
> also ne aufzählung  wie 1 - 2 - 3 - 4 - oder so ?

Meine Problemloesung sieht so aus, dass ich (bei Mysql) mit der SELECT Option
LIMIT die Suche einschraenke, also mit nur z.B. 10 Ergebnisse anzeigen lasse,
und dabei bei Ergebniss 50 beginne.
------schnipp
$querystring="SELECT * from katalog 
			WHERE warengruppenid=$wgid
			ORDER BY $order 
			LIMIT $offset,$maxrows";
------/schnipp

$maxrows beschreibt die Anzahl der Zeilen (z.B. 10), $offset den Anfang der
Aufzaehlung (z.B. ab Ergebniss 50).

Diese Variablen muessen nun von Seite zu Seite uebergeben werden. Meine
Ergebnisseite heist im Beispiel list.html, der aufruf beim ersten Aufruf
entsprechend:



-----schnipp
<a href="list.html?offset=0&maxrows=10>Linktext</a>
-----/schnipp



In der Seite list.html, die mit der obigen Abfrage die Ergebnisse sucht, baue
ich dann am Ende etwa folgende Konstruktion ein:



--------schnipp
<? if ($offset>=$maxrows) {
		$offsetdown=$offset-$maxrows;
	} else {
		$offsetdown=$offset;
	}

	if ($i>=$maxrows) {
		$offsetup=$offset+$maxrows;
	} else {
		$offsetup=$offset;
	}

?>

<? if ($offset>0) {?>
     <a href="liste.html?$maxrows=<?echo $maxrows?>&offset=<?echo
$offsetdown?>">Resultate <?echo "$offsetdown bis ".($offsetdown+$maxrows)?></a>
}

if ($i>=$maxrows) {?>
 <a href="liste.html?$maxrows=<?echo $maxrows?>&offset=<?echo
$offsetup?>">Resultate <?echo "$offsetup bis ".($offsetup+$maxrows)?></a>

<?}?>

------------/schnipp


Jetzt habe ich bei Bedarf zwei Links nach "vorne" und "hinten". $maxrows kann
man natuerlich auch gut in der Datei fest konfigurieren. 

Weiss nicht obs gut ist, funktioniert aber zumindest :-)

Gruss,

Joerg 

-- 


               Joerg Baach - Mediathek

    jbaach_(at)_mediathek.de - http://www.mediathek.de
Bielefelder Str. 44 - 33378 Rheda-Wiedenbrueck - Germany
   Tel: (+49) 5242 909091 - Fax: (+49) 5242 909089
                   PGP-Key availabe


php::bar PHP Wiki   -   Listenarchive