Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

Query if Like else Match

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
ben78
PostRank 4
PostRank 4
Beiträge: 153
Registriert: 30.03.2007, 17:15

Beitrag von ben78 » 24.04.2010, 01:47

Hi Leutz & Friends,

ich habe auf einer Unterseite eine einfache Query stehen, die mittels LIKE ausgeführt wird. Jedoch kommt es vor, dass mittels LIKE nicht immer ein Datensatz angezeigt werden kann. Alternativ, also via if / else möchte ich eine Volltext-Abfrage mittels MATCH laufen lassen. Also immer dann, wenn LIKE nicht greift, soll MATCH greifen.

Ich habe das mit der Fallunterscheidung if/else probiert funzt aber nicht ganz. Ist mein Vorhaben überhaupt möglich???

Im Handbuch und der großen Tante konnte ich leider nichts dazu finden.

Falls mein Vorhaben möglich ist, bin ich Euch für Ansätze die ihr mir geben könnt sehr Dankbar!

...schlage mich wieder seit zwei Tagen dumm und dämlich...:bad-words:

BIG THX 4 HLP

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


ben78
PostRank 4
PostRank 4
Beiträge: 153
Registriert: 30.03.2007, 17:15

Beitrag von ben78 » 25.04.2010, 16:14

Bis jetzt konnte keiner helfen...darum rauf damit... :wink:

DanielS
PostRank 9
PostRank 9
Beiträge: 1179
Registriert: 03.08.2008, 08:45

Beitrag von DanielS » 25.04.2010, 16:51

Ich würde es einfach mit zwei Abfragen machen, also erst Dein LIKE und per php prüfen, ob was gefunden wurde. Wenn nicht, dann MATCH it baby ;)

ben78
PostRank 4
PostRank 4
Beiträge: 153
Registriert: 30.03.2007, 17:15

Beitrag von ben78 » 26.04.2010, 17:51

Vlt. ne blöde Frage, da ich bei uns (Abakus Forum) in Sachen Query schon viel belehrt wurde. Habe mir diesbzgl. auch paar alte Threads angeschaut.

Aber wie kann ich dets umsetzen, weil ich das auch so machen wollte???
Ich würde es einfach mit zwei Abfragen machen, also erst Dein LIKE und per php prüfen, ob was gefunden wurde. Wenn nicht, dann MATCH it baby

Code: Alles auswählen

$abfrage2 = "SELECT * FROM tabelle WHERE Mitarbeiter LIKE '%" . mysql_real_escape_string($suchwort) . "%' AND Abteilung LIKE '%" . mysql_real_escape_string($abteilung) . "%' ORDER BY ID LIMIT 0,10"; 

Code: Alles auswählen

$abfrage3 = "SELECT * FROM tabelle WHERE MATCH (Mitarbeiter) AGAINST('" . mysql_real_escape_string($suchwort) . "') AND MATCH (Abteilung) AGAINST('" . mysql_real_escape_string($abteilung) . "') ORDER BY ID LIMIT 0,10";  

Anonymous

Beitrag von Anonymous » 26.04.2010, 17:56

könntest auch ne stored procedure einsetzen die das erledigt, geht auf jedenn Fall schneller gegenüber einer Lösung auf PHP Basis...

ben78
PostRank 4
PostRank 4
Beiträge: 153
Registriert: 30.03.2007, 17:15

Beitrag von ben78 » 26.04.2010, 18:03

stored procedure
What's det denn???

gleich mal zur großen Tante...bin gleich wieder zurück!

ben78
PostRank 4
PostRank 4
Beiträge: 153
Registriert: 30.03.2007, 17:15

Beitrag von ben78 » 26.04.2010, 18:25

Das scheint mir ein zu großes Unterfangen zu sein. Ich bin mit meinem Projekt schon zu weit, um mit stored procedure anzufangen und in Sachen PHP immer noch ein Anfänger.

Aber eine Frage hätte ich da:
Bild

...kommt dieser Code in das PHP Skript rein?

Und wenn ja, dann müsste ich doch nur noch Tabelle, Spalten etc. umbenennen oder?!?

Und gibt es dann bei der stored procedure auch kein Problem mehr mit ft_min_word_len wie bei der Volltextsuche. Mork_vom_Ork hat mir dazu was über n-gramme geschrieben...habe aber nicht wirklich hilfreiches bei der großen Tante dazu gefunden und Provider will's nicht auf 2 setzen...der arschi-backi...

Anonymous

Beitrag von Anonymous » 26.04.2010, 18:59

stored procedure laufen direkt auf mysql... und da ist dann egal ob du die db mit PHP oder einer anderen Sprache abfragen willst...

Anonymous

Beitrag von Anonymous » 26.04.2010, 19:01

mal ne andere Frage... warum nimmste nicht direkt eine Volltextsuche über match... eine Suche mit Like kann die db auf Dauer ganz schön in die Knie zwingen, gerade wenn die Tabelle größer wird, und beim shared Hosting dann dafür sorgen das der Hoster die scripte deaktiviert weil sie den ganzen DB Server ausbremsen..

ben78
PostRank 4
PostRank 4
Beiträge: 153
Registriert: 30.03.2007, 17:15

Beitrag von ben78 » 26.04.2010, 19:19

mal ne andere Frage... warum nimmste nicht direkt eine Volltextsuche über match... eine Suche mit Like kann die db auf Dauer ganz schön in die Knie zwingen, gerade wenn die Tabelle größer wird, und beim shared Hosting dann dafür sorgen das der Hoster die scripte deaktiviert weil sie den ganzen DB Server ausbremsen..
Es handelt sich bei meinem Anliegen um eine einzelne Box, bei der das Suchergebnis möglichst genau ausgeben werden soll. Eine Art Empfehlungsbox für den Suchenden. Abgefragt werden nur zwei spalten der tbl. und das LIMIT lautet 0,1. Meine SUMA läuft selbstverständlich auf Volltext.

Ist das so in Ordnung oder kann meine MySQL-DB anhand der obigen Schilderung trotzdem noch lahmgelegt werden?

...Also LIMIT 0,1 und nur zwei Spalten per LIKE...
Zuletzt geändert von ben78 am 26.04.2010, 19:30, insgesamt 1-mal geändert.

ben78
PostRank 4
PostRank 4
Beiträge: 153
Registriert: 30.03.2007, 17:15

Beitrag von ben78 » 26.04.2010, 19:29

stored procedure laufen direkt auf mysql... und da ist dann egal ob du die db mit PHP oder einer anderen Sprache abfragen willst...
wie würde dann die query im PHP-Skript aussehen?

...und den obigen Code gebe ich in meine MySQL DB ein?

ben78
PostRank 4
PostRank 4
Beiträge: 153
Registriert: 30.03.2007, 17:15

Beitrag von ben78 » 28.04.2010, 00:49

@net(t)worker

Ich bin Dir für den Hinweis zu "stored procedures" sehr Dankbar, weil die Eigenschaften welche damit erfüllt werden sehr zum Vorteil sind.

Für mich ist das aber noch absolutes Neulandgebiet, wo ich mich überhaupt nicht auskenne und mir diverse Seiten nicht plausibel genug erscheinen.

Ich glaube, ich brauche mehr Erfahrung um für mich den Schritt der stored procedures zu wagen, welchen ich auch machen will. Nur will ich mit meinem Projekt wieder voran kommen. Ich denke mich mit dem Thema stored procedures genauer auseinanderzusetzen, wenn mein neues Projekt erstmal steht. In anderen Worten...mir ist das Thema stored procedures noch viel zu heftig...vor allem dann, wenn ich vorher noch nie davon gehört habe und mir das ganze nahezu wie chinesisch erscheint. Aber scharf auf die Umsetzung von stored procedures bin ich alle mal...BIG THX 4 INFO!

nerd
PostRank 10
PostRank 10
Beiträge: 4023
Registriert: 15.02.2005, 04:02

Beitrag von nerd » 28.04.2010, 13:44

warum machst du kein union und lieferst dann immer die ersten x ergebnisse zurueck? wenn die erste abfrage keine x ergebnisse hat wird mit ergebnissen aus der zweiten abfrage aufgefuellt.

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag