hilfdirselbst.ch
Facebook Twitter gamper-media
StefanB
Beiträge: 71
18. Feb 2004, 15:40
Beitrag #1 von 5
Bewertung:
(1737 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

mySQL-Abfrage mit mehreren Suchbegriffen


Hallo,

ich möchte mehrere durch Leerzeichen getrennte Eingaben in ein Textfeld als Suchbegriffe für eine Datenbankanfrage verwenden.

Im fortgeschrittenen Stadium möchte ich auch eine UND. bzw. ODER-Verknüpfung anbieten (per radiobutton oder select) sowie eine Volltextsuche über alle Tabellenspalten.

Zu Letztgenanntem würde mir wohl etwas einfallen, aber wie trenne und aufbereite ich die Suchbegriffe? Hab nix gefunden.

Danke, Stefan Top
 
X
Tömsken
Beiträge: 720
21. Feb 2004, 13:01
Beitrag #2 von 5
Beitrag ID: #71545
Bewertung:
(1737 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

mySQL-Abfrage mit mehreren Suchbegriffen


Zumindest Variante ohne logische Verknüpfungen dürfte dank "explode" nicht weiter schwer sein (s. http://de.php.net/...nction.explode.php).

$s = explode(" ", $_POST['suchkriterien']);
$sql = "select * from 'daten' where ";
for ($i=0; $i<count($s); $i++) {
$sql .= "datenfeld='" . $s[$i] . "'";
if ($i<count($s)) $sql .= " AND ";
}

und dann eben die Query via mysql_query($sql)
als Antwort auf: [#71089] Top
 
[23]^5^
Beiträge: 14
23. Feb 2004, 15:37
Beitrag #3 von 5
Beitrag ID: #71760
Bewertung:
(1737 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

mySQL-Abfrage mit mehreren Suchbegriffen


Für Suchen eignet sich auch auch herrvoragend das % (Wildcard?)
Eingach mal googlen das wird dir weiterhelfen

Ansatz: .... WHERE blablub = '%".$suchbegriff."%' ....

greetz
--
nur das Genie beherrscht das Chaos
als Antwort auf: [#71089] Top
 
StefanB
Beiträge: 71
4. Mär 2004, 10:10
Beitrag #4 von 5
Beitrag ID: #73404
Bewertung:
(1737 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

mySQL-Abfrage mit mehreren Suchbegriffen


Danke, beide Antworten haben mir geholfen!

Tömsken: Es funktioniert, nur muss man noch ein "-1" einfügen (oder $i als Initialwert auf "1" setzen"), damit der letzte Begriff nicht auch noch von einem "AND" gefolgt wird:

$s = explode(" ", $_POST['suchkriterien']);
$sql = "select * from 'daten' where ";
for ($i=0; $i<count($s); $i++)
{
$sql .= "datenfeld='" . $s[$i] . "'";
if ($i<count($s)-1) //hier<<<<<
{
$sql .= " AND ";
}
}

Stefan
als Antwort auf: [#71089] Top
 
Tömsken
Beiträge: 720
4. Mär 2004, 10:23
Beitrag #5 von 5
Beitrag ID: #73412
Bewertung:
(1737 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

mySQL-Abfrage mit mehreren Suchbegriffen


Yep, hast natürlich Recht. Ich hatte die Zeilen "nur mal eben" hingetippt und den Logikfehler übersehen.
als Antwort auf: [#71089] Top
 
X