Forum

Moderiert von: spinne
Forum Index
Support
     Codeschnippsel
     FAQ Suche erweitern
Hilfe anzeigen
Hilfe anzeigen

Autor Druckerfreundliche DarstellungFAQ Suche erweitern
migaja

Registriert: 11.12.2005
Beiträge: 498


Sende eine Private Nachricht an migaja
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


Zitieren Druckerfreundliche Darstellung nach oben
stefan
Beiträge: 2435
Wohnort: Münster


Sende eine Private Nachricht an stefan
ICQ
Geschrieben: 23.11.2008 18:18

Dann must du das in der faq_search_result wohl falsch zusammen setzen ...

Kann du aus der sql error nicht erkennen was schief geht?


Zitieren Druckerfreundliche Darstellung nach oben
migaja

Registriert: 11.12.2005
Beiträge: 498


Sende eine Private Nachricht an migaja
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


Zitieren Druckerfreundliche Darstellung nach oben
migaja

Registriert: 11.12.2005
Beiträge: 498


Sende eine Private Nachricht an migaja
Geschrieben: 05.12.2008 16:38

*hüstel* *räusper*
niemand mit ?


Zitieren Druckerfreundliche Darstellung nach oben
sortieren nach

Hilfe anzeigen
Hilfe anzeigen
Vorheriges Thema:  an/aus Schalter
Nächstes Thema:  [modules/user_info_xxl] Änderungen

Gehe zu:

Benutzername:
 
Sicherheits-Code
Sicherheits-Code
Neu laden