splat
Erfahrenes Mitglied
Hallo nochmal
Ich geht um eine Suchfunktion eines Online Shops. Es kommt vor das manche Produkte in mehreren Kategorien vorhanden sind. Wenn jetzt nach einem dieser Produkte gesucht wird, wird es logischerweise auch mehrmals als Ergebnis ausgegeben.. Kann ich das irgendwie verhindern, bzw nur auf ein Ergebnis pro Artikel beschränken? Hier mal meine Suchfunktion:
Gruß, splat
Ich geht um eine Suchfunktion eines Online Shops. Es kommt vor das manche Produkte in mehreren Kategorien vorhanden sind. Wenn jetzt nach einem dieser Produkte gesucht wird, wird es logischerweise auch mehrmals als Ergebnis ausgegeben.. Kann ich das irgendwie verhindern, bzw nur auf ein Ergebnis pro Artikel beschränken? Hier mal meine Suchfunktion:
Code:
$search = trim(strtolower(nvl($_REQUEST["search"])));
if ($search) {
$qid_c = get_sub_categories($search);
$qid_p = get_products($search);
} else {
$url = match_referer() || empty($_SERVER["HTTP_REFERER"]) ? "$CFG->wwwroot/shopping" : $_SERVER["HTTP_REFERER"];
header("Location: $url");
die;
}
include("templates/search.php");
/******************************************************************************
* FUNCTIONS
*****************************************************************************/
function get_sub_categories($search) {
/* hole Name und Beschreibung aller unterkategorien */
$qid = db_query("
SELECT id, name, description
FROM categories
WHERE name LIKE '%$search%'
");
return $qid;
}
function get_products($search, $max_results=10) {
/* alle Produkte in dieser Kategorie holen */
$qid = db_query("
SELECT
p.id
,p.name
,p.description
,p.price
,p.on_special
FROM products p
WHERE (lower(p.name) LIKE '%$search%' OR lower(p.description) LIKE '%$search%')
LIMIT 0, $max_results
");
return $qid;
}
Gruß, splat