Ich habe meine Site um einige Such und Sortierfunktionen erweitert das Problem ist aber das er nach einer Auswahl keine Datensätze anzeigt.
1.Sortierung nach Kategorien:
Ich habe eine Navigation die aus den Kategorie erstellt wird und als Link dargestellt wird. Wenn der Benutzter eine Kategorie wählt soll er nur die Datensätze in dieser Kategorie sehen.
2. Suchwort eingeben:
Ich habe ein Eingabefeld wo der Benutzer ein Suchwort eingeben kann.
PHP-Code:
<?php
###############################################
# 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'];
// Anzahl der Datensätze pro Seite
$perpage = 5;
// Das obere und untere Limit
$limitlower = ($_GET['p']-1)*$perpage+1;
$limitupper = $_GET['p'] * $perpage;
// Stellt fest ob eine Kategorie übermittelt worden ist Bsp.: index.php?c=1
$_GET['c'] = ( isset($_GET['c']) && !empty($_GET['c']) && (trim($_GET['c'])!="") ) ? $_GET['c'] : FALSE;
// Stellt fest ob ein Suchwort übermittelt worden ist Bsp.: Textfeld $sw
$sw = ( isset($_GET['sw']) && !empty($_GET['sw']) && (trim($_GET['sw'])!="") ) ? $_GET['sw'] : FALSE;
// Abfrage der Datensätze
$sql1 = "SELECT a.dokid,a.catid,a.title,a.url,b.catid ,b.cattitle
FROM dokument a INNER JOIN categories b
USING (catid)
WHERE";
if($_GET['c'])$sql1 .= " a.catid=$_GET[c] ";
if($sw) $sql1.= " a.catid=b.catid AND title LIKE '$sw%' ";
$sql1 .= " a.catid=b.catid ";
$sql1 .= " ORDER BY cattitle limit ".($limitlower-1).",".$perpage;
// Enthält die Anzahl der Datensätze
$sql_hits = "select count(*) as hits from dokument";
if($_GET['c']) $sql_hits.= " WHERE catid=$_GET[c] ";
if($sw) $sql_hits.= " WHERE catid=$sw ";
$r_sql_hits = mysql_query($sql_hits);
$r_sql = mysql_query($sql1);
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
{
$alt='0';
while ($row = mysql_fetch_object($r_sql))
{
// Kategorien ermitteln
if($row->cattitle != $alt)
echo " <div align =\"left\" class=\"codetitle\"> $row->cattitle</div>";
// Wenn die Kategorien gleich sind dann
if ($alt = $row->cattitle);
echo "<div align=\"left\" class=\"codediv40\"><a href=$row->url> $row->title</a> </div>";
}
}
// 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> « </a>';
$firstpage = '<a href=index.php?p=1 class=nav>«« </a>';
}else{
$left_arrow = '<span class="title"></span>';
$firstpage = '<span class="title"></span>';
}
if($_GET['p'] < $page){
$right_arrow = '<a href="index.php?p='.($_GET['p']+1).'" class="nav"> » </a>';
$lastpage = '<a href="index.php?p='.$page.'" class="nav"> »» </a>';
}else{
$right_arrow = '<span class="nav"> </span>';
$lastpage = '<span class="nav"> </span>';
}
}