Zum Inhalt springen

Page-Switcher Funktion

Erstellt am 30. Mai 2007 · 3 Antworten · letzte Antwort am 24. Juli 2007

Tags: PHP, Tipp

NickD ·

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> <<< &nbsp;&nbsp;&nbsp;</b></a>';
						$content .= '<a href="'.$_SERVER["PHP_SELF"].'?'.$alias.'='.$prev_start_row.'&id='.$_GET["id"].'"><b> <&nbsp;&nbsp;&nbsp; </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>&nbsp;&nbsp;&nbsp; > </b></a>';
						$content .= '<a href="'.$_SERVER["PHP_SELF"].'?'.$alias.'='.$last_start_row.'&id='.$_GET["id"].'"><b>&nbsp;&nbsp;&nbsp; >>> </b></a></td></tr></table>';
				 }
				 else
				  $res = $GLOBALS['TYPO3_DB']->sql(TYPO3_db, $sql);
				   
				 return $content;
  }

ich hoffe es hilft einem 😉

lg, nick

tueselbert ·

Hallo Nick,
danke für das Script für den page-switcher! Nachdem wir uns wirklich am pagebrowser der pibase irgendwie die Zähne ausgebissen haben, war das Script eine super Hilfe. Es funktioniert wie es soll und man weiss wo man was einstellen muß oder kann.
Viele Grüße
jens

NickD ·

das freut mich sehr, dass ich helfen konnte....wenigstens einer, der es gebrauchen kann 🙂