PHP-Code:
###############################################
# Die Datensätze auf mehrere Seiten aufteilen
###############################################
// Stellt fest ob eine Seitenzahl übermittelt worden ist
$_GET['p'] = (!isset($_GET['p']) || $_GET['p'] == 0 || empty($_GET['p'])) ? 1 : $_GET['p'];
// Stellt fest ob eine Kategorie übermittelt worden ist
$_GET['c'] = (!isset($_GET['c']) || $_GET['c'] == 0 || empty($_GET['c'])) ? 1 : $_GET['c'];
// Anzahl der Datensätze pro Seite
$perpage = 2;
// Das obere und untere Limit
$limitlower = ($_GET['p']-1)*$perpage+1;
$limitupper = $_GET['p'] * $perpage;
$sql = "SELECT a.dokid,a.catid,a.title,a.url,b.catid ,b.cattitle
FROM dokument a INNER JOIN categories b
USING (catid)
WHERE a.catid=b.catid ORDER BY a.catid limit ".($limitlower-1).",".$perpage;
// Enthält die Anzahl der Datensätze
$sql_hits = "select count(*) as hits from dokument";
$r_sql_hits = mysql_query($sql_hits);
$r_sql = mysql_query($sql);
if($r_sql){
$hits = mysql_fetch_row($r_sql_hits);
$hits = $hits[0];
$limitupper = ($limitupper > $hits) ? $hits : $limitupper;
$limitlower = ($limitlower > $hits) ? $hits - $perpage : $limitlower;
$limitlower = ($limitlower <= 0) ? 1 : $limitlower;
if($hits==0){
echo "Keine Datensätze vorhanden";
}
else
{
echo ' </p>';
$alt='0';
while ($row = mysql_fetch_object($r_sql))
{
// Kategorien
if($row->cattitle != $alt)
{
echo " <table width=\"100%\" border=\"0\" cellspacing=\"1\" cellpadding=\"2\"> ";
echo " <tr>";
echo " <td>";
echo " <table width=\"100%\" border=\"0\" cellspacing=\"1\" cellpadding=\"2\" bgcolor=\"#333333\"> ";
echo " <tr> ";
echo " <th class=\"cattitel\"><span align=\"left\">.: $row->cattitle </span></th>";
echo " </tr>";
echo "</table>";
echo "</tr>";
echo "</td>";
echo "</table>";
}
// Wenn die Kategorien gleich sind dann
if ($alt = $row->cattitle);
echo " <table width=\"100%\" border=\"0\" cellspacing=\"1\" cellpadding=\"2\"> ";
echo " <tr>";
echo " <td>";
echo " <table width=\"100%\" border=\"0\" cellspacing=\"1\" cellpadding=\"1\" bgcolor=\"#333333\"> ";
echo " <tr> ";
echo " <td class=\"row1\"><span align=\"left\"><a href=$row->url class=\"menü\"> $row->title</a></span></td>";
echo "</td>";
echo "</tr>";
echo "</table>";
echo "</tr>";
echo "</td>";
echo "</table>";
}
}
// Feststellen ob alles auf eine Seite passt
$page = ($hits<$perpage) ? 1 : ceil($hits/$perpage);
if($_GET['p'] > 1){
$left_arrow = '<a href=index.php?p='.($_GET['p']-1).' class=nav> Back </a>';
}else{
$left_arrow = '<span class="title"></span>';
}
if($_GET['p'] < $page){
$right_arrow = '<a href="index.php?p='.($_GET['p']+1).'" class="nav"> Next </a>';
}else{
$right_arrow = '<span class="nav"> </span>';
$lastpage = '<span class="nav"> </span>';
}
}
Wenn ich versuche das ganze mit nur einer Tabelle zu machen geht der Gruppenwechsel nicht mehr.
Er zeigt mir den Titel und den ersten Datensatz dieser Kategorie in der Tabelle an. Den Rest der Datensätze zeigt er ohne Tabellenlayout an.
Einen Kommentar schreiben: