Michael: Blättern...

Beitrag lesen

Hallo Andreas,

Ja, ja das Blättern ...

Verwendest du eventuell PEAR-Packages?
Wenn nicht, wäre gerade so eine Problematik es wert, einen Blick
in diesen Fundus zu werfen. Ich poste dir ein Beispiel, das aber mit deiner Anwendung noch nichts gemein hat. Ein bisschen Gehirnschmalz solltest du selber auch beisteuern. Man muss zwar ein bisschen Überlegungsarbeit leisten, um solche Packages zu verstehen, dann aber sind sie meist eine große Hilfe, und man kann sie für den Eigenbedarf gut zurecht schneidern.
Voilà:

// Beispiel mit einem einfachen PEAR Pager

include ("../etc/config.php");
require_once 'Pager.php';

db_get($db, DB_NAME, DB_LOGIN, DB_PASSWD, DB_HOST, DB_SYSTEM);

$from = isset($_REQUEST['from']) ? $_REQUEST['from'] : 0;      // The row to start to fetch from (you might want to get this
                                // param from the $_GET array
$limit = 20;                    // The number of results per page
$maxpages = 10;                 // The number of pages for displaying in the pager (optional)

$sql = "SELECT * FROM formen";
$res = $db->limitQuery($sql, $from, $limit);
if (DB::isError($res))
    die ("Hopfen und Malz verloren");

$n = 0;
while($line = $res->fetchRow())
{
    print "<a href="xxx.php?par='".$line["parameter"]."'">".$line["parameter"]."</a> : ".$line["parameter"]."<br>";
    $n++;
}

$data = DB_Pager::getData($from, $limit, $res->numRows(), $maxpages);

print "<br><br>";
//display previous link
printf('<a href="%s?from=%d">Previous</a> |', $_SERVER['PHP_SELF'],$data['prev']);
//display page links
foreach($data['pages'] as $page=> $start)
{
   if ($start == $from)
       printf(' %d | ', $page);
   else
       printf('<a href="%s?from=%d">%d</a> | ',$_SERVER['PHP_SELF'], $start, $page);
}
//display next page link
printf('<a href="%s?from=%d">Next</a>',$_SERVER['PHP_SELF'],$data['next']);
//display the records part
printf(" Displaying records %d- %d of %d)",$data['from'],$data['to'],$data['numrows']);

Ein komfortablerer Pear Pager ist jener von Richard Heyes

Blätterproblematiken lassen sich auch mit Template-Engines wie Smarty mit seinen sections gut und unaufwändig lösen.

Michael