Logisches Problem.. umsetzung... filter?

silent321

Grünschnabel
Hi;),

ich stehe vor einem Logischen problem und weis keine antwort darauf.

Ich habe eine Suche, bei der man mehrere beliebige wörter eingeben kann.

die Suche durchsucht die MYSQL datenbank jeweils nach allen wörtern und gibt alle ergebnisse aus.

nehmen wir als beispiel ein suche für rezepte:

es befinden sich 3 rezepte in der datenbank.

1. Pilzrezept
2. Fleischrezept
3. pilz mit fleisch rezept

Suche ich nun nach "Pilze" bekomme ich ergebnis "1" und "3"... das ist auch richtig so,

gebe ich nun "Pilze & Fleisch" in die suche ein bekomme ich als ergebnis "1, 2 und 3" ausgegeben,
in diesem fall möchte ich aber nur das dritte rezept ausgegeben bekommen da ich nach einem Pilz und Fleich rezept gesucht habe
und nicht nur nach einem pilz und oder flscheisrezept einzeln.

versteht ihr,

sobald nach zwei oder mehrere begriffen gesucht wird sollen nur die rezepte angezeigt werden indenen auch alle drei begriffe vorhanden sind

damit ihr euch ein bild machen könnt wie meine suche aussieht:

Hier als beispiel eine suche mit 2 begriffen:

//
select * from rezepte where zutaten like '%Pilze%' or ueberschrift like '%Pilze%' or zubereitung like '%Pilze%' and zutaten like '%fleisch%' or ueberschrift like '%fleisch%' or zubereitung like '%fleisch%'
//

Ich stehe vor der umsetzung vor einem problem da ich nicht weis wie ich das umsetzen soll...


gruß
silent321:)
 
Du musst einfach die Bedingungen mit dem UND-Operator verknüpfen, da du ja nur die Datensätze haben möchtest, bei denen „Pilze“ UND „Fleisch“ vorkommt.
 
in meiner abfrage benutze ich ja schon AND aber es funktioniert nicht er gibt mir alles aus

select * from rezepte where zutaten like '%Pilze%' or ueberschrift like '%Pilze%' or zubereitung like '%Pilze%' AND zutaten like '%fleisch%' or ueberschrift like '%fleisch%' or zubereitung like '%fleisch%'
 
Du solltest mit Klammern arbeiten, Ein AND bindet immer stärker als eine OR.
€:
SQL:
select * from rezepte where (zutaten like '%Pilze%' or ueberschrift like '%Pilze%' or zubereitung like '%Pilze%') AND (zutaten like '%fleisch%' or ueberschrift like '%fleisch%' or zubereitung like '%fleisch%)'
 
hab es so gemacht wie du es gesagt hast und es funktioniert :-)

jedoch bleibt noch ein großes problem!

als beispiel habe ich zwei Datensätze:

1: überschrift: fleisch
text: pilze

2: überschrift: fisch
text: schwein

wenn ich in die suche "fleisch & fisch" oder "pilze & schwein" eingebe werden mir beide rezepte angezeigt, so solls auch sein...

jedoch wenn ich "fleisch & schwein" oder "pilze & fisch" eingebe zeigt er mir kein rezept an...

versteht ihr?

habt ihr einen lösungsvorschlag?

überschrift und überschrift geht
text und text auch aber
text und überschrift nicht

brauche dringend hilfe

gruß
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück