Mailinglisten-Archive |
> ich verzweifle gerade daran Seitenweise Daten auszugeben , ich meine die
> Datensatzausgabe auf eine bestimmte Anzahl pro Seite zu begrenzen. Ich hab
> auch irgendtwo ein Beisüpiel gesehen und hab es aber dann wieder aus den
> augen verloren,,...
>
> hat da jemand ein Tip für mich?
>
hallo peter,
ich habe das so gemacht (incl. navigation, ohne layout):
$limit:anzahl der datensaetze auf einer seite
$back:variable fuers zuruckblaettern
$forth:variable fuers vorwaertsblaettern
$floor: nummer des 1. auf einer seite angezeigten datensatzes
$aktseite: aktuelle angezeigte seite
<code>
$limit=30;
if(isset($back)){$floor=$back;$aktseite--;} //wenn zurueckgeblaettert,
setze variablen
if(isset($forth)){$floor=$forth;$aktseite++;} //detto fuer vorwaertsbl.
if(!isset($floor)){$floor=0;$aktseite=1;} //beim 1.seitenaufruf setze
variablen
$back=$floor-$limit; //fuer das naechste zurueckblaettern setze
variablen
$forth=$floor+$limit; //detto fuer vorwaertsbl.
// wenn die gesamtanzahl der datensaetze noch nicht gezaehlt worden
sind, mach das
if(!isset($numrows))
{
$query="SELECT id FROM $table WHERE blabla";
$select=mysql($database,$query);
$numrows=mysql_numrows($select);
}
//seitenkopf mit navigationslinks
$seitenanz=ceil($numrows/$limit); //seitenanzahl ermitteln
if($floor>0)
{
echo"<a
href='$PHP_SELF?back=$back&aktseite=$aktseite&numrows=$numrows'>zurueckblaettern</a><br>";
}
if($seitenanz>1)echo"<b>seite $aktseite von $seitenanz</b><br>";
if($forth<$numrows)
{
echo"<a
href='$PHP_SELF?forth=$forth&aktseite=$aktseite&numrows=$numrows'>vorwaertsblaettern</a><br>";
}
//die eigentliche db-abfrage
$query2="SELECT bla FROM $table WHERE bla LIMIT $floor,$limit";
$select2=mysql($database,$query2);
(tabelle generieren.....)
//seitenfuss mit der moeglichkeit, eine seite direkt anzuspringen
if($seitenanz>1)
{
echo"seite: ";
for($i=1;$i<=$seitenanz;$i++)
{
$floor=($i*$limit)-$limit;
if($i==$aktseite)
{
echo"[$i] ";
}
else
{
echo"[<a
href='$PHP_SELF?aktseite=$i&numrows=$numrows&floor=$floor'>$i</a>] ";
}
}
}
</code>
das funktioniert. du kannst es dir unter
http://www.audiomat.at/index.php3?action=nachges
auch ansehen. moeglicherweise etwas umstaendlich und naiv. wenn
jemand meint, der code ist mist oder ineffizient, dann moege er/sie mir
die augen oeffnen!
ronald hartwig
php::bar PHP Wiki - Listenarchive