php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 11.10.2006, 13:04  
Erfahrener Benutzer
 
Registriert seit: 09.03.2005
Beiträge: 219
webbi
Standard Suche mit variabler Suchbegriffanzahl in MySQL Datenbank

Hallo,

Ich möchte eine Suche in eienr MySQL Adressdatenbank realisieren. Dazu soll es nur EIN Suchfeld geben in das der Nutzer eine beliebige Anzahl an begriffen eingeben kann.

Ein Leerzeichen würde als Trennzeichen für die Begriffe dienen.
Nach Verarbeiten des Formulars habe ich alle einzelnen Begriffe in einem Array vorliegen.

Als Beispiel sieht die Datenbankstruktur so aus:
ID, Vorname, Name, Strasse, PLZ, Ort

Der User soll aber die Möglichkeit haben mit den Begriffen beliebige Felder zu durchsuchen.
Das heißt er kann in das Eingabefeld eingeben: "Hans Meier", "Müller Berlin" oder "Hauptstraße Frank" oder auch nur "Müller"

Es soll jeder Datensatz gefunden werden der ALLE Suchbegriffe einthält. Ob dabei alle Begriffe in der gleichen Spalte oder in verschiedenen Spalten stehen und in welcher Reihenfolge sie vorkommen soll egal sein.

Das einzige was mir bisher eingefallen ist wäre eine Abfrage wie:

...
WHERE
(Vorname LIKE '%begriff1%' OR NAME LIKE '%begriff1%' OR Strasse LIKE '%begriff1%' OR ...)

Bei jedem weiteren Begriff käme dann ein:
AND (Vorname LIKE '%begriff2' ...)


Diese Bedingung würde ich dann für jeden Begriff mit einer Schleife generieren lassen. Würde gehen, aber gäbe es noch einen einfacheren Weg?
webbi ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 12.10.2006, 14:02  
Erfahrener Benutzer
 
Benutzerbild von phpdummi
 
Registriert seit: 06.06.2008
Beiträge: 1.631
PHP-Kenntnisse:
Anfänger
phpdummi ist zur Zeit noch ein unbeschriebenes Blatt
Standard

->mysql such index
__________________
"Nobody is as smart as everybody" - Kevin Kelly
— The best things in life aren't things
phpdummi ist offline   Mit Zitat antworten
Alt 12.10.2006, 15:49  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Die PLZ Spalte (sofern nicht VARCHAR) kriegst du dann aber nicht mit rein in die Volltext-Suche. Musst du eben manuell reinpfriemeln.
Zergling-new ist offline   Mit Zitat antworten
Alt 12.10.2006, 16:12  
Erfahrener Benutzer
 
Registriert seit: 09.03.2005
Beiträge: 219
webbi
Standard

Zitat:
->mysql such index
Volltextsuche über den Index bringt leider nicht immer das Gewünschte Ergebnis:

Wenn ich Beispielsweise nach "Müller" suche, dann bringt er mir korrekterweise die Einträge mit "Müller", suche ich allerdings nach "üller" bringt er mir gar keine Ergebnisse.
Tippe ich nur einen Buchstaben ein, z.B. ein "i", dann soll er mir alle Einträge bringen die diesen einen Buchstaben enthalten und bei der Indexsuche bekomme ich so ebenfalls keine Ergebnisse.

Laut dem MySQL Tutorial wertet er die Suchbegriffe nach ihrer Relevanz und lässt Begriffe, die sehr häufig vorkommen weg. Das mag für Textsuche sinnvoll sein, aber ich brauche alles mit einer exakten Übereinstimmung.
Hab ich etwas falsch gemacht oder lässt sich das nicht mit der Volltext Suche realisieren?
webbi ist offline   Mit Zitat antworten
Alt 12.10.2006, 16:15  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Da hast du schon Recht, die Volltextsuche ist nicht immer nachvollziehbar und läßt oft Treffer weg.

Machs halt notfalls so wie du oben schon geschrieben hast. phpMyAdmin macht es auch nicht anders..
Zergling-new ist offline   Mit Zitat antworten
Alt 12.10.2006, 17:06  
Erfahrener Benutzer
 
Registriert seit: 09.03.2005
Beiträge: 219
webbi
Standard

ok, danke dann werde ich das so probieren.

Was meint ihr, ist aus performance Sicht günstiger? So wie ich es oben geschrieben habe oder alle Spalten zu einer zusammenfassen und dann jeweils mit jedem Begriff vergleichen, d.h.:

CONCAT_WS(' ',vorname,name,strasse,...) LIKE '%begriff1%' AND
CONCAT_WS(' ',vorname,name,strasse,...) LIKE '%begriff2%' ...
webbi ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Backup einer MySql Datenbank dh1sbg Beitragsarchiv 1 13.04.2008 20:45
[Erledigt] MySQL - ERROR 1044 bei erstellen einer Datenbank _youngenterpriser_ Datenbanken 2 05.02.2008 17:56
MySQL Datenbank -> komplett durchsuchen Soese Datenbanken 17 02.12.2006 11:33
[Erledigt] MySQL Ausfallsicherheit einer Datenbank Datenbanken 2 08.06.2006 11:21
Abrage aus MySQL Datenbank PHP Tipps 2006 8 19.04.2006 09:30
Probleme beim �bertragen an eine Mysql Datenbank Datenbanken 2 07.03.2006 21:26
MySQL Server startet nicht mehr richtig... Datenbanken 16 03.03.2006 19:40
mysql datei in datenbank einspielen Datenbanken 6 20.06.2005 16:07
[Erledigt] Verständnisfrage OOP - Objekte in MySQL Datenbank schreiben? PHP Tipps 2005 2 19.05.2005 21:40
[Erledigt] Datenbank HP im PHP Kit + MySQL Datenbanken 1 20.04.2005 12:32
[Erledigt] Suche über 2 Tabellen in MySQL PHP Tipps 2004-2 4 15.12.2004 16:05
Suche Php(evt Mysql) Leute Beitragsarchiv 14 12.12.2004 15:15
Hilfe - PHP - Mysql - Museum Datenbank Beitragsarchiv 2 07.12.2004 17:44
Suche in Mysql Datenbank philipro PHP Tipps 2004-2 2 02.12.2004 17:44
[Erledigt] MySQL findet Datenbank nicht Datenbanken 10 21.10.2004 09:14

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mysql suchindex, http://www.php.de/datenbanken/42470-suche-mit-variabler-suchbegriffanzahl-mysql-datenbank.html, mysql mehrere suchbegriffe, mehrere suchbegriffe php, php mehrere suchbegriffe, mysql suche mehrere begriffe, suchindex mysql, php suche mysql mehrere suchbegriffe, php mysql suchfeld, mysql volltextsuche mehrere suchbegriffe, php suchindex datenbank, mysql suche mit mehreren begriffen, mehrere suchbegriffe mysql, suchfeld php mysql, mysql suchbegriff, php suchfeld mysql, mysql like mehrere suchbegriffe, suchfunktion php mehrere suchbegriffe, php is like mehrere begriffe, php mysql suche mehrere begriffe

Alle Zeitangaben in WEZ +2. Es ist jetzt 05:17 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.