ich verwende das Script von Michael Gautschi für einen Stichwortindex. Hier das Script:
Code: Alles auswählen
<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname : Stichwortindex
* Author : Michael Gautschi
* Copyright : Michael Gautschi
* Created : 15.1.04
* Modified :
* Version : 0.1
************************************************/
// Zuerst herausfinden welcher Metatype "Keywords" sind; normalerweise 5
$sql = "SELECT * FROM ".$cfg["tab"]["meta_type"] . " AS A WHERE A.metatype=\"keywords\"";
$db->query($sql);
if ($db->num_rows()==0) {
echo "Konnte nicht bestimmen welche Metatags keywords sind";
}
else {
$db->next_record();
$keywordid=$db->f("idmetatype");
$sql = "SELECT metavalue,ARTLANG.idlang,ARTLANG.title,ARTLANG.idart,CATART.idcat FROM ".
$cfg["tab"]["meta_tag"]. " AS META,".
$cfg["tab"]["art_lang"]. " AS ARTLANG,".
$cfg["tab"]["cat_art"]. " AS CATART
WHERE META.idmetatype = $keywordid
AND META.idartlang = ARTLANG.idartlang
AND ARTLANG.idart = CATART.idart
AND metavalue<>\"\"";
$db->query($sql);
if ($db->num_rows() != 0) {
$entries=array();
for ($i=0; $i<$db->num_rows(); $i++) {
$db->next_record();
$metavalues=$db->f("metavalue");
$idart=$db->f("idart");
$idcat=$db->f("idcat");
$title=$db->f("title");
$tmp_keywords=split(",",$metavalues);
foreach ($tmp_keywords as $tmp_keyword) {
$tmp_keyword=trim($tmp_keyword);
$entry["idart"]=$idart;
$entry["idcat"]=$idcat;
$entry["title"]=$title;
if ( !(array_key_exists($tmp_keyword,$entries))) $entries[$tmp_keyword]=array();
array_push($entries["$tmp_keyword"],$entry);
}
}
ksort($entries);
foreach($entries as $keyword=>$items) {
echo "$keyword<ul>";
foreach ($items as $item) {
$navmod_link ="front_content.php?client=$client&lang=$lang&idcat=". $item["idcat"] . "&idart=" . $item["idart"];
echo ' <li><a href="'.$sess->url("$navmod_link").'" id="font">'.$item["title"].'</a><br> ';
}
echo "</ul>";
}
}
else {
echo "keine Stichworte gefunden";
}
}
?>
Ich habe nun das Problem, dass ich viele Artikel mehreren Kategorien zugeordnet habe. Leider gibt mir dieses Script nun für jedes Stichwort jeweils für jede zugeordnete Kategorie ein Ergebnis aus. Soll heißen, dass zu einem Begriff z.B. 5 gleiche Treffer stehen.
Kann mir jemand helfen, wie ich das Script so modifiziere, dass jeweils nur ein Teffer angezeigt wird? Die Kategorie wäre mir dabei gleich (könnte man ganz weg lassen).
Ich habe es heute schon den ganzen Tag versucht und leider zu keinen zufrieden stellenden Ergebnis gekommen.