phpbar.de logo

Mailinglisten-Archive

AW: sql query

AW: sql query

Dr. Franz-Josef Huecker mysql-de_(at)_lists.bttr.org
Tue, 23 Jul 2002 10:09:01 +0200


At 09:31 23.07.02 +0200, you wrote:

>könntest du ein wenig konkreter werden ?
>tabellen, struktur ... ausgaben ?
>fakten halt ....

Hallo Heinz

Danke fuer die Nachfrage. Es geht konkret darum, dass die Daten fuer ein
Diskussionsforum nach Topics und Antworten in zwei MySQL-Tabellen und dort
eben eben in zwei bzw. einer Spalte gespeichert werden, die nach beliebig
vielen Stichwoerter mit AND- bzw. OR-Verknuepfung und weiteren
Restriktionen zu durchsuchen sind.

 topics-table: "f_thread", cols: subject, message; replies-table:
"f_threads", cols: message

So koennte etwa jemand in das Eingabefeld einer Suchmaske [mysql suchen
fritz] eingeben, weil er gehoert hat, dass Fritz einen tollen Beitrag zu
den MySQL-Suchmoeglichkeiten geschrieben hat und dass es sehr viele
Antworten dazu gibt, und klickt dazu noch UND- bzw. ODER-Verknuepfung an.
Ausserdem gibt es weitere Optionen, wie etwa zeitliche Ausgabe, Beitraege
der letzten 24 Stunden, und die Beschraenkung auf ein bestimmtes
thematisches Forum.

Nun sollen beide Tabellen in einem Zug durchsucht werden und alle Beitraege
ausgeben, die geschrieben wurden zu 'MySQL && suchen && Fritz' bzw. zu
'MySQL || suchen || Fritz'. Der Select-Befehl, den ich zur Zeit nutze
(s.u.), leistet das nicht, sondern wuerde in diesem Fall nur Datensaetze
ausgeben, in denen sich der String "mysql suchen Fritz" findet und wuerde
wahrscheinlich dann ueberhaupt keine Treffer ausgeben koennen obwohl es
ueber hunderte von  Beitraegen gibt, die diese Stichwoerter insgesamt oder
teilweise enthalten.

--
SELECT DISTINCT f_thread.* FROM f_thread,f_threads WHERE f_thread.fid =
f_threads.fid && f_threads.message LIKE '%$keywords%' && f_threads.rdate >=
'$show_time' && f_thread.forum = '$forum' || f_thread.subject LIKE
'%$keywords%' && f_thread.mdate >= '$show_time' && f_thread.forum =
'$forum' || f_thread.message LIKE '%$keywords%' && f_thread.mdate >=
'$show_time' && f_thread.forum = '$forum' ORDER BY fid DESC LIMIT $first,
$p_split;
--

In dieser Abfrage sollte dann '%$keywords%' die 'beliebigen' Stichwoerter
des Nutzers enthalten und natuerlich entsprechende alle Eintraege ausgeben,
die entweder mysql,suchen,fritz enthalten bzw. die mysql od. suchen od.
fritz enthalten.

Ich sehe mit Interesse Deiner Antwort entgegen.

Franz-Josef

--
 Dr. Franz-Josef Huecker
W3: http://www.huecker.com
 Email: info_(at)_huecker.com

---
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->>  http://www.4t2.com/mysql 



php::bar PHP Wiki   -   Listenarchive