• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Abfrage

T!P-TOP

Mitglied
Hi,

ich arbeite gerade an einer Abfrage, funktionieren tut sie zwar, aber nicht so ganz wie ich es will.

Es geht darum, die Werte von 3 Felder abzufragen, aber nur dann, wenn in einer Zeile der suchbegriff vorkommt.

Eine kleine übersicht wie die Tabelle ungefähr aussieht:

+---------------------------------------+
| Adresse | Inhalt | Titel |
+---------------------------------------+
| home.at | blabla | BLABLA |
| seite.de | asdasd | TITEL |
+---------------------------------------+

Derzeit frage ich nur das Feld mit dem Inhalt ab. Wenn der Sucbegriff im Inhalt vorhanden ist, wird die Zeile ausgegeben. Wenn ich jetzt aber home.at in die Suche eingebe, kommt natürlich gar nichts, weil im Inhalt nur blabla und asdasd drin steht. Es soll also nicht nur die Spalte Inhalt, sondern auch die Spalte Überschrift und Adresse abgefragen werden.

so sieht die Abfrage derzeit aus:
PHP:
$abfrage = 'SELECT `Adresse`, `Inhakt`, `Titel` FROM daten WHERE `beschreibung` LIKE "%$suchbegriff%"';
Es soll also nicht die Spalt beschreibung, sonder eben die kompletten Zeilen mit dem $suchbegriff verglichen werden.

So schwer kann das ja wohl kaum sein nur habe ich wohl grad nen Hänger :/
Könnt ihr mir weiterhelfen?

Grüße,
T!P-TOP
 
Werbung:
Hallo,
ist es auch nicht :O)
PHP:
$abfrage = 'SELECT `Adresse`, `Inhalt`, `Titel` FROM daten WHERE (`beschreibung` LIKE "%$suchbegriff%" OR `Inhalt` LIKE "%$suchbegriff%");

und das halt für jede Spalte mit OR.
oder mit AND wenn beides vorkommen soll.



Cheffchen
 
Zuletzt bearbeitet:
Werbung:
Ich hab die ganze zeit die Runden Klammern weggelassen, erklärt jetzt natürlich auch wieso es nie funktioniert hat :|

Naja jetzt haut es hin, danke euch vielmals! :smile:
 
Aber ich würde generell von Likes abraten. Diese scheinen zwar anfangs ziemlich performant zu sein. Doch je mehr Datensätze du hast und je länger die einzelnen Dateneinträge sind, desto länger brauchst du zum vergleichen.
Ich würde eine Art Wörterbuch erstellen. Und dort arbeitest du dann nicht mit like sondern mit =. Wenn du ein unique key auf ein Wort hast, verbindest du es mit einer anderen Tabelle in der steht, in welchen Einträgen das Wort vorkommt.

Ab > 100 Einträgen, kann ich dir garantieren, dass diese Methode performanter ist als die like-Methode. Unter 100 Einträgen ist es vergleichbar.
 
Zurück
Oben