CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden |
23.08.2005, 15:36:09
|
Anfänger
|
|
Registriert seit: Aug 2003
Ort: Hamburg
Beiträge: 41
|
|
Phrasen Suche bauen
Hallo
ich wollte eine Suche mit match against usw bauen.
Alles funktioniert auch.
Doch hier meine Frage:
Wie kann man aus einer Suche eine Phrasensuche bauen.
Das heisst wenn ich in mein Formular Anführungszeichen setze zum Beispiel
"Canon BJ 300" findet er auch nur Artikel, die Canon BJ 300 als Bestandteil des Wortes haben. Ohne Anführungszeichen findet er eben alles was Canon oder BJ oder die 300 als Wort Bestandteil hat.
Wie kann ich die Anführungszeichen mit übergeben?
oder wie muss der Suchstring mit preg_match() bearbeitet werden?
Wäre für jeden Hinweis sehr dankbar.
Danke im vorraus
|
23.08.2005, 17:00:00
|
SELFPHP Guru
|
|
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
|
|
AW: Phrasen Suche bauen
mit einigen schleifen, if-anweisungen und sehr viel denkarbeit...mehr kann ich dazu jetzt konkret leider nicht sagen, wenn du nicht konkret deine probleme dabei schilderst...
p.s.: ich würde jedoch die suche aus performanz-gründen direkt in der db-statt finden lassen, gibt da ein nettes kapitel über reguläre ausdrücke in mysql im handbuch...
Geändert von feuervogel (23.08.2005 um 17:00:56 Uhr)
|
23.08.2005, 17:08:47
|
|
SELFPHP Guru
|
|
Registriert seit: May 2003
Beiträge: 7.187
|
|
AW: Phrasen Suche bauen
Wenn ich dein Problem richtig verstehe, müsstest du einfach nur deine MATCH() ... AGAINST() Anweisung, wie hier beschrieben um den Zusatz IN BOOLEAN MODE erweitern.
|
23.08.2005, 17:20:00
|
Anfänger
|
|
Registriert seit: Aug 2003
Ort: Hamburg
Beiträge: 41
|
|
AW: Phrasen Suche bauen
Das habe ich bereits.
Mein Problem ist, das ich gern die Anführungstriche ohne die Eingabe mit übergeben möchte.
Die meisten User kommen auf die Website und geben zum Beispiel
Canon BJ 300 ein. Und dann "Enter". Wenn Sie Anführungszeichen explizit eingeben würden, dann würden Sie auch das richtige finden. Die meisten mach dies aber nicht. Also würde ich gern die Anführungszeichen im Suchstring hinzufügen, damit dies automatisch geschieht.
Meine Abfrage siehe hier.
SELECT * FROM `tabelle` WHERE MATCH (titel) AGAINST ('$suchstring' IN BOOLEAN MODE)
|
23.08.2005, 17:37:23
|
|
SELFPHP Guru
|
|
Registriert seit: May 2003
Beiträge: 7.187
|
|
AW: Phrasen Suche bauen
Es soll also der gesamte String in Anführungszeichen eingeschlossen werden oder wie darf man das verstehen?
|
23.08.2005, 17:54:16
|
Anfänger
|
|
Registriert seit: Aug 2003
Ort: Hamburg
Beiträge: 41
|
|
AW: Phrasen Suche bauen
Genau der Suchstring soll in Anführungszeichen und dann als Phrasensuche von der Abfrage match against behandelt werden, als ob der User Anführungszeichen eingegeben hätte.
Gruss und danke für die Teilnahme an meinem Problem.
|
23.08.2005, 18:30:32
|
|
SELFPHP Guru
|
|
Registriert seit: May 2003
Beiträge: 7.187
|
|
AW: Phrasen Suche bauen
Dann kannst du doch einfach folgende Zeile vor deine Abfrage setzen:
PHP-Code:
<?php
$suchstring = '"' . $suchstring . '"';
?>
|
23.08.2005, 18:47:21
|
Anfänger
|
|
Registriert seit: Aug 2003
Ort: Hamburg
Beiträge: 41
|
|
AW: Phrasen Suche bauen
$HTTP_GET_VARS['suche']=$suche
$suche = '"' . $suche . '"';
$query_suche = sprintf("SELECT * FROM `tabelle` WHERE MATCH (titel) AGAINST ('$suche' IN BOOLEAN MODE)"
So geht es leider nicht!
Schade
ich habe auch mal folgendes ausprobiert, geht aber leider irgenwie auch nicht.
$query_suche = sprintf("SELECT * FROM `tabelle` WHERE MATCH (titel) AGAINST
('" . stripslashes (str_replace (""", "\"", (['$suche']))) . "' IN BOOLEAN MODE)";
Schade
|
23.08.2005, 19:33:18
|
|
SELFPHP Guru
|
|
Registriert seit: May 2003
Beiträge: 7.187
|
|
AW: Phrasen Suche bauen
Was heißt "geht nicht"? Was für eine Fehlermeldung erhälst du (Stichwort: mysql_error())?
|
23.08.2005, 20:01:39
|
Anfänger
|
|
Registriert seit: Aug 2003
Ort: Hamburg
Beiträge: 41
|
|
AW: Phrasen Suche bauen
Ein Fehler gibt es keinen aus:
Hier noch mal der Code
$query_suche = sprintf("SELECT * FROM `Tabelle` WHERE MATCH (titel) AGAINST ('" . stripslashes (str_replace (""", "\"", ('%s')))."' IN BOOLEAN MODE)"
Hierbei kommt ein normales Ergbnis. Soll heissen:
Es gibt genau die gleichen Ergbenisse wie bei dem Code:
$query_suche = sprintf("SELECT * FROM `Tabelle` WHERE MATCH (titel) AGAINST ('%s' IN BOOLEAN MODE)"
Mit anderen Worten nichts passiert:
Variante 2
$HTTP_GET_VARS['suche']=$suche;
$Suche = '"' . $suche . '"';
$query_suche = sprintf("SELECT * FROM `prod_T1` WHERE MATCH (titel) AGAINST ('%s' IN BOOLEAN MODE)"
Auch hier das gleiche es passiert nichts. Verhält sich, wie in der Suche bisher.
Mit Gruss
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 06:57:33 Uhr.
|