"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

suchfunktion mit php

noledge 13.02.2002 - 19:11 830 3
Posts

noledge

CWNE #540
Avatar
Registered: Apr 2001
Location: ::1
Posts: 6837
hi leute,

ich suche einen lösungsansatz (keine fertige software, kein script das wer reinpostet, nein, einen lösungsansatz) für eine suchfunktion mit php in einer mySQL-datenbank.

eine table mit mehreren feldern soll nach stichwörtern durchsucht werden, sachen wie AND, OR, NOT sollen bei der stichworteingabe möglich sein, ebenso *.

durch diverse websites bin ich nicht wirklich schlauer geworden.
würd mich freuen, wenn mir jemand - in kurzen worten - erklären würde, wie er das löst - welche befehle, sql-commandos.

muchas gracias
Bearbeitet von noledge am 13.02.2002, 20:37

funka

Legend
ex-prophet(down below)
Registered: Sep 2000
Location: Vienna / SF
Posts: 6131
* kannst einfach zu % umparsen

die columns in denen er suchen darf/soll
machst auf der page davor mit checkboxes deren name immer arr[COLNAME] ist
das filterst dann raus
foreach ($arr as $col => $val)
{
...
}
da nur die uebergeben werden die gesetzt sind ist das dann kein problem

jetzt gehts an query zambaun
string bei den leerzeichen aufexploden (=> array query)
diesen array stueck fuer stueck durchgehen

NOT:
if ($query[$i] == "NOT")
{
$not = "!";
$i++;
}

OR / AND:
kannst lassen


wast noch abfangen musst ist die moeglichkeit das die syntax nicht korrekt ist
die moeglichkeit das jemand spaces (zb Willfried Mueller AND blakuh) eingibt
und das das where nur einmal vorkommen sollte ;)

hoffe das hilft weiter

$col = $query[$i]

Ringding

Pilot
Avatar
Registered: Jan 2002
Location: Perchtoldsdorf/W..
Posts: 4300
Query gscheit parsen -> gibt dir einen Baum.
Baum kannst durch ein simples Traversal in ein SQL Statement umwandeln. Is nicht wenig Arbeit, das ist klar.

noledge

CWNE #540
Avatar
Registered: Apr 2001
Location: ::1
Posts: 6837
uff...

thx erstmal
jetzt weiß ich warum ich mir gleich 1 woche urlaub gnommen hab :p
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz