[GastForen Programmierung/Entwicklung PHP und MySQL mySQL-Abfrage mit mehreren Suchbegriffen

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

mySQL-Abfrage mit mehreren Suchbegriffen

StefanB
Beiträge gesamt:

18. Feb 2004, 15:40
Beitrag # 1 von 5
Bewertung:
(3259 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
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
X

mySQL-Abfrage mit mehreren Suchbegriffen

Tömsken
Beiträge gesamt: 720

21. Feb 2004, 13:01
Beitrag # 2 von 5
Beitrag ID: #71545
Bewertung:
(3259 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
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]

mySQL-Abfrage mit mehreren Suchbegriffen

[23]^5^
Beiträge gesamt: 14

23. Feb 2004, 15:37
Beitrag # 3 von 5
Beitrag ID: #71760
Bewertung:
(3259 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
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]

mySQL-Abfrage mit mehreren Suchbegriffen

StefanB
Beiträge gesamt:

4. Mär 2004, 10:10
Beitrag # 4 von 5
Beitrag ID: #73404
Bewertung:
(3259 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
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]

mySQL-Abfrage mit mehreren Suchbegriffen

Tömsken
Beiträge gesamt: 720

4. Mär 2004, 10:23
Beitrag # 5 von 5
Beitrag ID: #73412
Bewertung:
(3259 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Yep, hast natürlich Recht. Ich hatte die Zeilen "nur mal eben" hingetippt und den Logikfehler übersehen.


als Antwort auf: [#71089]
X