phpbar.de logo

Mailinglisten-Archive

[php] MySQL

[php] MySQL

andreas kempf aka 'amalesh' aka_(at)_bigfoot.de
Wed, 21 Jul 1999 13:42:14 GMT


On Wed, 21 Jul 1999 14:27:50 +0200, Joern Krueger wrote:

>> da bei einer Abfrage der MySQL-Datenbank natürlich immer unterschiedlich
>> viele Treffer erzielt werden und ich gerne immer eine bestimmte Anzahl
>> von Treffern pro Seite dargestellt haben möchte, suche ich nach einem
>
>Falls jemand dieses Problem lösen kann, würde mich noch interessierten,
>ob jemand weiß, wie man dafür sorgen kann, daß nicht immer die gleichen
>Sätze auf der ersten Seite stehen.

Als erstes muß du mit "select count(id) from table" die komplette
anzahl der zeilen haben, um eine echte navigation zustande zu
bekommen. 

Dann kannst du mit "... limit $nPos,10" genau die eingeschränkten
datensätze erhalten. Die navigation wie Vor/zurück/ende/anfang muß
du dir dann etwa so bauen:

Folgendes wird immer von der seite tabelle.php3 aufgerufen und
erhält als variable $nPos:

	$strSQL = "select count(id) as anzRow from $cfgTabArtikel";
  	$intResultID = mysql_query($strSQL, $connectionID);
	$intAnzRow = mysql_result($intResultID,0,"anzRow");

	if (!isset($nPos))
	{	$nPos = 0;
	}

	$cfgMaxRows = 10; // limit

	$nPosNext = $nPos + $cfgMaxRows;
	$nPosPrev = $nPos - $cfgMaxRows;

	// Hier das echte "select ... limit $nPos,$cfgMaxRows und 	
	// ausgaben einsezten
	// ...

	if ($nPosNext > $intAnzRow)	// Wenn am ende der tabelle
		$nBis = $intAnzRow;			
	else
		$nBis = $nPosNext;		// oder die nexte position
		
	// Zurück
	if ($nPos >= $cfgMaxRows)
  	{	$strNavBeginn = "tabelle.php3?nPos=0";
		$strNavPrev   = "tabelle.php3?nPos=$nPosPrev";
		// hier nun echo oder include template...
	}
	
	// Vor
	if ($nPosNext <= $intAnzRow)
	{	$intEnde = $intAnzRow-$cfgMaxRows+1;
		$strNavNext = "tabelle.php3?nPos=$nPosNext";
		$strNavEnde = "tabelle.php3?nPos=$intEnde";
		// hier nun echo oder include template...
	}

ciao

amalesh

ps: bitte nicht über die variablen-namen wundern, ich komme aus der
windows-welt wo die ungarische notation der variablen usus ist.
-- 
Anwendungsentwicklung mit C++ JAVA VB PHP ASP SQL POET SGML XML
http://www.living-source.com ~ ak_(at)_living-source.com ~ icq963380
Hamburg : Tel. 040-39904183 Fax. 040-39904328 Mob. 0170-4809618
Freiburg: Tel. 0761-152580  Fax. 0761-1525850


php::bar PHP Wiki   -   Listenarchive