---
title: "Page-Switcher Funktion"
url: "https://www.typo3.net/d/63197-page-switcher-funktion"
source: "typo3.net"
tags: ["Extensions","Entwicklung","PHP","Tipp"]
created: "2007-05-30"
last_reply: "2007-07-24"
replies: 3
solved: false
page: 1
pages: 1
lang: "de"
---

# Page-Switcher Funktion

Extensions › Entwicklung · 3 Antworten · gestartet 2007-05-30

## Eröffnungsbeitrag

**NickD** · 2007-05-30 · [Beitrag #1](https://www.typo3.net/d/63197-page-switcher-funktion/1)

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:

```php
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:

```php
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

## Antworten

### [#2](https://www.typo3.net/d/63197-page-switcher-funktion/2) · tueselbert · 2007-06-14

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

### [#3](https://www.typo3.net/d/63197-page-switcher-funktion/3) · NickD · 2007-06-15

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

### [#4](https://www.typo3.net/d/63197-page-switcher-funktion/4) · thinklink · 2007-07-24

funktioniert echt gut - besten dank...

---

Quelle: „Page-Switcher Funktion“, typo3.net, https://www.typo3.net/d/63197-page-switcher-funktion
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
