hallo,
ich habe eine page-switcher funktion geschrieben, die vielleicht dem einen oder anderen helfen könnte. der funktion übergibt man ein query, die anzahl der datensätze die pro seite gezeigt werden sollen und eine refferenz auf $result.
die funktion prüft dann auf die anzahl und gibt dann (falls genügend vorhanden) eine seitennavigation zurück.
aufruf der funktion:
function test()
{
$res = false;
$print .= $this->getPageSwitcher("SELECT * FROM tablename","30",$res,"page");
$print .= $this->showOutput($res);
return $print;
}
$res ist die result-variabel...den PageSwitcher wird als erstes das query, dann die anzahl der gezeigten datensätze pro seite, die refferenz auf $res und ein alias übergeben. der alias ist dafür gedacht, das mehrere funktionen den pagesSwitcher nutzen können. dieser alias wird dann als getvariable genutzt, um dann durch die seiten zu navigieren.
funktion getPageSwitcher:
function getPageSwitcher($sql,$show_rows,&$res,$alias)
{
$complete_rows;
$next_start_row;
$prev_start_row;
$last_start_row;
$start_row;
$complete_rows = mysql_num_rows($GLOBALS['TYPO3_DB']->sql(TYPO3_db, $sql));
if($complete_rows > $show_rows)
{
$start_row = (isset($_REQUEST[$alias]) && $_REQUEST[$alias] != '') ? $_REQUEST[$alias] : 0;
$next_start_row = $start_row + $show_rows;
$prev_start_row = $start_row - $show_rows;
$last_start_row = $complete_rows - ($complete_rows % $show_rows);
if($next_start_row > $last_start_row)
$next_start_row = $last_start_row;
if($prev_start_row < 0)
$prev_start_row = 0;
$res = $GLOBALS['TYPO3_DB']->sql(TYPO3_db, $sql." LIMIT $start_row,$show_rows");
$rows = $show_rows+$start_row;
$content .= '<table border="0" width="100%"><tr><td align="left"><a href="'.$_SERVER["PHP_SELF"].'?'.$alias.'=0&id='.$_GET["id"].'"><b> <<< </b></a>';
$content .= '<a href="'.$_SERVER["PHP_SELF"].'?'.$alias.'='.$prev_start_row.'&id='.$_GET["id"].'"><b> < </b></a></td>';
$content .= '<td align="center"><b>'.$start_row.'</b> - ';
$content .= '<b>'.$rows.'</b> ';
$content .= 'von <b>'.$complete_rows.'</b></td>';
$content .= '<td align="right"><a href="'.$_SERVER["PHP_SELF"].'?'.$alias.'='.$next_start_row.'&id='.$_GET["id"].'"><b> > </b></a>';
$content .= '<a href="'.$_SERVER["PHP_SELF"].'?'.$alias.'='.$last_start_row.'&id='.$_GET["id"].'"><b> >>> </b></a></td></tr></table>';
}
else
$res = $GLOBALS['TYPO3_DB']->sql(TYPO3_db, $sql);
return $content;
}
ich hoffe es hilft einem 😉
lg, nick