Datenbanksuche: Produkt mehrmals vorhanden, will aber nur ein Ergebnis pro Artikel

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:

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
 
Re: Datenbanksuche: Produkt mehrmals vorhanden, will aber nur ein Ergebnis pro Artike

PHP:
$qid = db_query("
SELECT 
  `id`, 
  `name`, 
  `description`
FROM 
  `categories` 
WHERE 
  `name` LIKE '%".$search."%'
group by 
  `name`
");
 
Re: Datenbanksuche: Produkt mehrmals vorhanden, will aber nur ein Ergebnis pro Artike

das wars schon? :)
danke für die schnelle Antwort!! :-)
 
Zurück