Boolsche Suche

Boolsche Suche

am 12.02.2007 11:13:51 von mk136

Hallo zusammen,

erstmal vorn weg. Ich bin PHP und MySQL-Anfänger und beschäftige mich
mit diesem Thema nicht ganz freiwillig. Aber ich möchte ja mein
Studium doch schaffen ;o)

Ich suche nun eine Möglichkeit eine boolsche Suche in meine
Webdatenbank einzubauen. Ich stelle mir da in etwas so etwas vor:
http://www.sowi.uni-mannheim.de/lehrstuehle/lssoz1/seiten/he lp/suchen.php

oder auch die Möglichkeit mit zwei Feldern für jeweils ein Suchbegriff
und der Möglichkeit ein AND bzw. OR aus zu wählen.

kann mir da jemand einen Tipp geben?
Ich wüßte auch gerne, ob man das mit alles Feldtypen machen kann. Oder
muß ich alle Typen auf TEXT stellen? Was müßte ich noch beachten?
Gibt es Beispielscripte, die ich verwenden könnte?

Würde mich sehr über jeden Hinweis freuen.
Schon mal danke im vorraus

Mandy

Re: Boolsche Suche

am 12.02.2007 12:40:42 von Claus Reibenstein

Mandy K. schrieb:
^^^^^^^^

Hier bitte vollen Realnamen eintragen.

> Ich suche nun eine Möglichkeit eine boolsche Suche in meine
> Webdatenbank einzubauen. Ich stelle mir da in etwas so etwas vor:
> http://www.sowi.uni-mannheim.de/lehrstuehle/lssoz1/seiten/he lp/suchen.php

Und was ist daran boolesch? Ich sehe dort eine Suche nach irgendwelchen
Zeichenfolgen.

> Ich wüßte auch gerne, ob man das mit alles Feldtypen machen kann. Oder
> muß ich alle Typen auf TEXT stellen?

Suchen kannst Du selbstverständlich in allen Feldtypen. Alles andere
würde auch keinen Sinn ergeben.

Zum Suchen gibt es den SQL-Befehl SELECT. Alles weitere findest Du im
Manual Deiner Datenbank.

Gruß. Claus
--
,~°O O
O ,´ / |/|\
/ |¯`. Das neue Hochzeits-Branchenbuch im Internet ,´ / | |\
/__| `~...............................................~´ /___|/ /

Re: Boolsche Suche

am 12.02.2007 14:57:03 von Joerg Behrens

Mandy K. schrieb:
> Hallo zusammen,
>
> erstmal vorn weg. Ich bin PHP und MySQL-Anfänger und beschäftige mich
> mit diesem Thema nicht ganz freiwillig. Aber ich möchte ja mein
> Studium doch schaffen ;o)

Frage:
Waren SQL Kurse teil des Studiums?


> Ich suche nun eine Möglichkeit eine boolsche Suche in meine
> Webdatenbank einzubauen. Ich stelle mir da in etwas so etwas vor:
> http://www.sowi.uni-mannheim.de/lehrstuehle/lssoz1/seiten/he lp/suchen.php
>
> oder auch die Möglichkeit mit zwei Feldern für jeweils ein Suchbegriff
> und der Möglichkeit ein AND bzw. OR aus zu wählen.

Was sinnvoll ist haengt von der Menge der Spalten, Spaltentypen und
deren Anzahl ab. Zur Suche innerhalb eines Textes wirst du wohl um "LIKE
%foo%" nicht herum kommen. Da hier aber prinzipbedingt keine Indices
mehr helfen empfiehlt sie diese Loesung nur bei einer ueberschaubaren
Mengen an Datensaetzen bzw. Spalten.

> kann mir da jemand einen Tipp geben?
> Ich wüßte auch gerne, ob man das mit alles Feldtypen machen kann. Oder
> muß ich alle Typen auf TEXT stellen? Was müßte ich noch beachten?
> Gibt es Beispielscripte, die ich verwenden könnte?

Jenach verwendeter Datenbank hat diese auch spezielle Volltextindices.
Schau halt mal unter dev.mysql.com/FULLTEXT nach. Diese Indices kann
man aber nur bei bestimmten Tabellenhandler bzw. Spalten setzten.

Gruss
Joerg

--
TakeNet GmbH, Geschaeftsfuehrer Wolfgang Meier
97080 Wuerzburg Tel: +49 931 903-2243
Alfred-Nobel-Straße 20 Fax: +49 931 903-3025
HRB Wuerzburg 6940 http://www.takenet.de

Re: Boolsche Suche

am 12.02.2007 15:23:23 von mk136

On 12 Feb., 14:57, Joerg Behrens wrote:
> Mandy K. schrieb:
>
>
> Frage:
> Waren SQL Kurse teil des Studiums?
ja, damit komme ich auch wesentlich besser zurecht, als mit PHP :o/
>
>
> > oder auch die Möglichkeit mit zwei Feldern für jeweils ein Suchbegr=
iff
> > und der Möglichkeit ein AND bzw. OR aus zu wählen.
>
> Was sinnvoll ist haengt von der Menge der Spalten, Spaltentypen und
> deren Anzahl ab. Zur Suche innerhalb eines Textes wirst du wohl um "LIKE
> %foo%" nicht herum kommen. Da hier aber prinzipbedingt keine Indices
> mehr helfen empfiehlt sie diese Loesung nur bei einer ueberschaubaren
> Mengen an Datensaetzen bzw. Spalten.
es handlet sich schon um eine überschaubare Datenbank, die nur aus
zwei Tabellen besteht.
>
> > kann mir da jemand einen Tipp geben?
> > Ich wüßte auch gerne, ob man das mit alles Feldtypen machen kann. O=
der
> > muß ich alle Typen auf TEXT stellen? Was müßte ich noch beachten?
> > Gibt es Beispielscripte, die ich verwenden könnte?
>
> Jenach verwendeter Datenbank hat diese auch spezielle Volltextindices.
> Schau halt mal unter dev.mysql.com/FULLTEXT nach.
das könnte mir vielleicht schon ein bischen weiterhelfen ... vielen
dank. Ich habe diese Funktion zwar schon erfolglos ausprobiert. Aber
vielleicht finde ich in diesem Text ja noch einige wichtige Hinweise.

>Diese Indices kann
> man aber nur bei bestimmten Tabellenhandler bzw. Spalten setzten.
CHAR, VARCHAR, or TEXT in MyISAM Tabellen
>
Danke für die Hilfe. Ich werde dann nochmal weiter tüfteln ...

Viele Grüße,
Mandy

Re: Boolsche Suche

am 12.02.2007 17:42:45 von Joerg Behrens

Mandy K. schrieb:
> On 12 Feb., 14:57, Joerg Behrens wrote:
>> Mandy K. schrieb:
>>
>>
>> Frage:
>> Waren SQL Kurse teil des Studiums?
> ja, damit komme ich auch wesentlich besser zurecht, als mit PHP :o/

Deine Frage klang aber nicht so sehr nach PHP drum hab ich gefragt.
Welche Technik verwendet wird (LIKE oder againg match (Fulltext)) hat
nichts mit PHP zu tun sondern einzig mit der Datenbank und dem
bisherigen Layout.


>>> Ich wüßte auch gerne, ob man das mit alles Feldtypen machen kann. Oder
>>> muß ich alle Typen auf TEXT stellen? Was müßte ich noch beachten?
>>> Gibt es Beispielscripte, die ich verwenden könnte?
>> Jenach verwendeter Datenbank hat diese auch spezielle Volltextindices.
>> Schau halt mal unter dev.mysql.com/FULLTEXT nach.
> das könnte mir vielleicht schon ein bischen weiterhelfen ... vielen
> dank. Ich habe diese Funktion zwar schon erfolglos ausprobiert. Aber
> vielleicht finde ich in diesem Text ja noch einige wichtige Hinweise.
>
>> Diese Indices kann
>> man aber nur bei bestimmten Tabellenhandler bzw. Spalten setzten.
> CHAR, VARCHAR, or TEXT in MyISAM Tabellen
> Danke für die Hilfe. Ich werde dann nochmal weiter tüfteln ...

Somit ist das geeignet fuer MySQL Fulltext. Stelle also die Indices fuer
deine Spalten.

1. HTML Form schreiben
2. Parser in PHP screiben welche das passende Statement entsprechend
erzeugt.
3. Query absetzen
4. rgebnisse darstellen.

Gruss
Joerg

--
TakeNet GmbH, Geschaeftsfuehrer Wolfgang Meier
97080 Wuerzburg Tel: +49 931 903-2243
Alfred-Nobel-Straße 20 Fax: +49 931 903-3025
HRB Wuerzburg 6940 http://www.takenet.de

Re: Boolsche Suche

am 13.02.2007 21:25:48 von mk136

Danke für die vielen Infos. Ich werde leide erst wieder am Wochenende
dazu kommen, dem mal nach zu gehen. Mal sehen, ob ich weiterkomme. Ich
bin mir nicht ganz sicher, ob mein "Problem" wirklich nur ein MySQL-
Problem ist. Es gibt ja noch so viele Möglichkeiten in PHP mit Arrays
und if-else-Geschichten. Habe ein bischen den Überblick verlohren.
Aber wie gesagt, ich probiere mich am WE nochmal und dann sehen wir
weiter.

VG, Mandy