die DB durchsuchen nach begriffen
Frank
- datenbank
Hallo leute,
hab da ein kleines Problem.
Also, ich hab ne InetSeite, mit einem InputFeld. Dort kann man ein Suchbegriff eingeben, der in der DB durchsucht werden soll.
so soll meine DB aussehen.
Meine DB heißt: TEST
In TEST gibt es 3 Tabelle. Tab1, Tab2 und Tab3.
Dort sind eine gewissen Anzahl von Spalten enthalten.
Jetzt will ich, das der eingegebene Suchbegriff, in TEST durchsucht wird, oder besser gesagt, in den Tabellen Tab1, Tab2 und Tab3.
Nur weis ich leider nicht, wie ich das realisieren soll.
Gibt es in SQL sowas wie:
$sql = "SEARCH ...."; ??? oder wie muss ich das lösen.
Hab das Forum schon durchsucht, aber leider nix passendes gefunden, oder hab unter dem falschen Stichwort gesucht.
Wäre sehr dankbar über ne Antwort.
Bei fragen, wenn was unklar ist, steh ich gerne zur Verfügung.
mfg
Frank
Servus Frank,
dass du hier nicht`s gefunden hast wundert mich ganz tierisch.
Aber das SQL müsste wie folgt aussehen.
sqlstmt= "Select * from test where tab1 like '%teststring%' or tab2 like '%teststring%' or tab3 like '%teststring%'";
Damit finest Du nun jeden Eintrag bzw. jede Spalte, wo in tab1 und / oder tab2 und /oder tab2 teststring drinnen steht.
Gruss Matze
Moin!
Also, ich hab ne InetSeite, mit einem InputFeld. Dort kann man ein Suchbegriff eingeben, der in der DB durchsucht werden soll.
"Suche, so wirst du finden" fällt mir als blöder Spruch dazu ein. Dazu gleich mehr.
Meine DB heißt: TEST
In TEST gibt es 3 Tabelle. Tab1, Tab2 und Tab3.
Dort sind eine gewissen Anzahl von Spalten enthalten.Jetzt will ich, das der eingegebene Suchbegriff, in TEST durchsucht wird, oder besser gesagt, in den Tabellen Tab1, Tab2 und Tab3.
"Suche, so wirst du finden - aber wo suchen?". Lege fest, in welchen Spalten der einzelnen Tabellen du suchen willst. Und dann sendest du das passende SELECT an die Datenbank, um in den genannten Spalten nach dem Suchbegriff zu suchen.
Da anzunehmen ist, dass die drei Tabellen unterschiedliche Strukturen haben (sonst wären sie eine einzelne Tabelle), mußt du dreimal für jede Tabelle abfragen.
Nur weis ich leider nicht, wie ich das realisieren soll.
Gibt es in SQL sowas wie:
$sql = "SEARCH ...."; ??? oder wie muss ich das lösen.
Wie gesagt: "SELECT... WHERE spalte1 LIKE '%SUCHBEGRIFF%' or spalte2 LIKE '%SUCHBEGRIFF%'"
Wichtig: Suchbegriff darf selbst keine uncodierten Prozentzeichen enthalten (die Prozentzeichen vor und hinter dem Suchbegriff sind Platzhalter für "beliebig viele Zeichen").
"Suche, so wirst du finden - aber was für ein Schrott kommt denn da raus?" So wird dann vermutlich deine erste Reaktion sein. "Suchen", wie man es von Suchmaschinen kennt, also einfach mehrere Suchbegriffe ins Feld eingeben, möglicherweise mit Plus- und Minuszeichen sogar noch Begriffe ein- oder ausschließen, und mit Anführungszeichen um Wortgruppen nach exakter Übereinstimmung zu suchen, sowie nicht nur nach Wortbestandteilen, sondern nur nach exakt vorkommenden Worten zu suchen - _das_ ist die Kunst. Und solch eine Aufgabe ist bei weitem nicht so simpel, wie die einfache Suche, wie oben skizziert.
- Sven Rautenberg