migaja
Registriert: 11.12.2005
Beiträge:
498
|
Geschrieben: 23.11.2008 12:28
Hallo,
in der Funktion faq_search_result in der faq_func.php würde ich gerne die Suche um 3 Felder erweitern.
Werte sind folgende (Bezeichnungen lt. meiner Anpassung des Moduls) in der Funktion faq_buildsearchform:
0 Alle (vorher Frage und Antwort)
1 rank (vorher Frage)
2 songs (vorher Antwort)
3 event (neu)
4 city (neu)
5 club (neu)
Wenn ich in der result dies hinzufüge und die Werte um eins verschiebe (also !=1 ist songs; !=2 ist event usw.), dann funktioniert die Suche nur in allen Feldern. Sobald ein einzelnes Feld über das Auswahlmenü gewählt wird kommt "Error in your SQL Syntax"
Claudia
|
migaja
Registriert: 11.12.2005
Beiträge:
498
|
Geschrieben: 23.11.2008 21:51
Hm - mal wieder keine Ahnung hab
Fehlermeldung ist z.B. so (Suche nach mucke1 in Feld songs):
ERROR [512] mysql error: [1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(a.city LIKE '%mucke1%' ) (a.club LIKE '%mucke1%' ) (a.rank LIKE '%mucke1%' )) ' at line 1] in EXECUTE("SELECT a.id AS id, a.id_cat AS id_cat, a.event AS event, a.datum AS datum, a.city AS city, a.rank AS rank, a.club AS club, a.points AS points, a.songs AS songs FROM opn_masterlistsongs a, opn_masterlist_cats b WHERE b.cat_id=a.id_cat AND b.cat_usergroup IN (0) AND ( (a.songs LIKE '%mucke1%' ) (a.city LIKE '%mucke1%' ) (a.club LIKE '%mucke1%' ) (a.rank LIKE '%mucke1%' )) GROUP BY a.id")
FOUND IN [C:...wwwopntrunkhtmlincludeopndb-errorhandler.php]
FOUND AT 240
Hier mal Ausschnitt aus Funktion:
if ($masterlistsearchtype == 'or') {
$andor = 'OR';
} else {
$andor = 'AND';
}
if ($lookupin != 1) {
$like_search = $opnConfig['opnSQL']->AddLike ($terms[0], $queryitems[1], $queryitems[2]);
$addquery .= ' (a.songs '.$queryitems[0].' ' . $like_search . ' )';
for ($i = 1; $iAddLike ($terms[$i], $queryitems[1], $queryitems[2]);
$addquery .= ' ' . $andor . ' (a.songs '.$queryitems[0].' ' . $like_search . ')';
}
}
if ($lookupin == 0) {
$addquery .= ') OR (';
}
if ($lookupin != 2) {
$like_search = $opnConfig['opnSQL']->AddLike ($terms[0], $queryitems[1], $queryitems[2]);
$addquery .= ' (a.event '.$queryitems[0].' ' . $like_search . ' )';
for ($i = 1; $iAddLike ($terms[$i], $queryitems[1], $queryitems[2]);
$addquery .= ' ' . $andor . ' (a.event '.$queryitems[0].' ' . $like_search . ')';
}
}
if ($lookupin == 0) {
$addquery .= ') OR (';
}
if ($lookupin != 3) {
$like_search = $opnConfig['opnSQL']->AddLike ($terms[0], $queryitems[1], $queryitems[2]);
$addquery .= ' (a.city '.$queryitems[0].' ' . $like_search . ' )';
for ($i = 1; $iAddLike ($terms[$i], $queryitems[1], $queryitems[2]);
$addquery .= ' ' . $andor . ' (a.city '.$queryitems[0].' ' . $like_search . ')';
}
}
if ($lookupin == 0) {
$addquery .= ') OR (';
}
if ($lookupin != 4) {
$like_search = $opnConfig['opnSQL']->AddLike ($terms[0], $queryitems[1], $queryitems[2]);
$addquery .= ' (a.club '.$queryitems[0].' ' . $like_search . ' )';
for ($i = 1; $iAddLike ($terms[$i], $queryitems[1], $queryitems[2]);
$addquery .= ' ' . $andor . ' (a.club '.$queryitems[0].' ' . $like_search . ')';
}
}
if ($lookupin == 0) {
$addquery .= ') OR (';
}
if ($lookupin != 5) {
$like_search = $opnConfig['opnSQL']->AddLike ($terms[0], $queryitems[1], $queryitems[2]);
$addquery .= ' (a.rank '.$queryitems[0].' ' . $like_search . ' )';
for ($i = 1; $iAddLike ($terms[$i], $queryitems[1], $queryitems[2]);
$addquery .= ' ' . $andor . ' (a.rank '.$queryitems[0].' ' . $like_search . ')';
}
}
$addquery .= ')';
if ($lookupin == 0) {
$addquery .= ' )';
}
und großer Meister wo tun sich die Abgründe auf
|