SQL LIKE mit joker benutzen

In diesem Forum kann man Fragen zur Programmierung stellen, die bei der Entwicklung von Mods für phpBB 3.0.x oder dem Modifizieren des eigenen Forums auftauchen.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
Nobody-66
Mitglied
Beiträge: 45
Registriert: 21.10.2009 17:52

SQL LIKE mit joker benutzen

Beitrag von Nobody-66 »

ist es denn überhaupt möglich, in PHPBB LIKE mit dem platzhalter % zu nutzen?
brauche das z.b. um den usern zu ermöglich, auch nach teilen in einem wort zu suchen.
beispiel: frühaufsteher wird nicht gefunden, wenn man nach dem wort früh sucht.
vielen dank schon mal für eure hilfe
Charlie_M
Mitglied
Beiträge: 1210
Registriert: 17.07.2008 13:09
Kontaktdaten:

Re: SQL LIKE mit joker benutzen

Beitrag von Charlie_M »

Das funktioniert mit dem Platzhalter *, also früh*
Sucht mal alle Begriffe in denen "früh" vorkommt: *früh*

Ist auch per Standard in der erweiterten Suche beschrieben:
Benutze ein * als Platzhalter für teilweise Übereinstimmungen.
Nobody-66
Mitglied
Beiträge: 45
Registriert: 21.10.2009 17:52

Re: SQL LIKE mit joker benutzen

Beitrag von Nobody-66 »

und wie sieht die datenbankabfrage dazu aus?
will es ja für was anderes nutzen (zahlen und zahlen bereiche, z.b. statt 123-01, 123-02 soll man gleich nach 123-% suchen können), nicht um nach zeichen in beiträgen zu suchen.
hoffe, es versteht jemand, was ich meine :grin:
Benutzeravatar
BNa
Valued Contributor
Beiträge: 3169
Registriert: 12.04.2010 23:51
Kontaktdaten:

Re: SQL LIKE mit joker benutzen

Beitrag von BNa »

Nobody-66 hat geschrieben:und wie sieht die datenbankabfrage dazu aus?
Die Frage geb ich zurück. Wie sieht denn Dein bisheriger Code aus?
Wo ist der bisherige Code eingefügt? Oder, in welcher Datei included, etc.?
Weil, ohne Basiscode, den Du selbst erstellt hast, kann Dir hier niemand helfen.
Soll heissen, keiner wird Dir etwas Frei Haus programmieren, helfen jedoch schon.
Nobody-66
Mitglied
Beiträge: 45
Registriert: 21.10.2009 17:52

Re: SQL LIKE mit joker benutzen

Beitrag von Nobody-66 »

BNa hat geschrieben:
Nobody-66 hat geschrieben:und wie sieht die datenbankabfrage dazu aus?
Die Frage geb ich zurück. Wie sieht denn Dein bisheriger Code aus?
Wo ist der bisherige Code eingefügt? Oder, in welcher Datei included, etc.?
Weil, ohne Basiscode, den Du selbst erstellt hast, kann Dir hier niemand helfen.
Soll heissen, keiner wird Dir etwas Frei Haus programmieren, helfen jedoch schon.
mir soll ja auch keiner ne ganze seite schreiben. nur sagen, wie ich das mit dem like hinbekomm :)
bisher sieht die abfrage so aus:

Code: Alles auswählen

			$sql = 'SELECT *
			FROM ' . TABLE . '
			WHERE wert1 = ' . $wert1  . ' AND wert2 LIKE ' . $wert2 ;
			$result = $db->sql_query($sql);
			$row = $db->sql_fetchrow($result);
			$db->sql_freeresult($result);
und nun wüsste ich halt gerne, wo und wie ich den joker (%) platzieren muss. $wert2 sind ausschließlich zahlen. diese zahlen dürfen nur am ende einen joker haben. also %123 ist nicht gewollt, nur 012% oder halt 01%
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17473
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Re: SQL LIKE mit joker benutzen

Beitrag von Dr.Death »

Moin,

schon mal den Joker fest eingebaut?

Code: Alles auswählen

             $sql = 'SELECT *
             FROM ' . TABLE . '
             WHERE wert1 = ' . $wert1  . ' AND wert2 LIKE ' . $wert2 . '%' ;
             $result = $db->sql_query($sql);
             $row = $db->sql_fetchrow($result);
             $db->sql_freeresult($result);
Nobody-66
Mitglied
Beiträge: 45
Registriert: 21.10.2009 17:52

Re: SQL LIKE mit joker benutzen

Beitrag von Nobody-66 »

Dr.Death hat geschrieben:Moin,

schon mal den Joker fest eingebaut?

Code: Alles auswählen

             $sql = 'SELECT *
             FROM ' . TABLE . '
             WHERE wert1 = ' . $wert1  . ' AND wert2 LIKE ' . $wert2 . '%' ;
             $result = $db->sql_query($sql);
             $row = $db->sql_fetchrow($result);
             $db->sql_freeresult($result);
wenn ich es so schreibe, bekomme ich als "antwort"

SQL ERROR [ mysqli ]
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '%' at line 3 [1064]
SQL
SELECT * FROM tabelle WHERE wert1 = 1 AND wert2 LIKE 12%
BACKTRACE

ich komme einfach nicht drauf, wo der fehler liegt :evil:
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17473
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Re: SQL LIKE mit joker benutzen

Beitrag von Dr.Death »

Code: Alles auswählen

             $sql = 'SELECT *
             FROM ' . TABLE . '
             WHERE wert1 = ' . $wert1  . ' AND wert2 LIKE "' . $wert2 . '%"' ;
             $result = $db->sql_query($sql);
             $row = $db->sql_fetchrow($result);
             $db->sql_freeresult($result);
Bin gerade mobil untergwegs... Daher nur ein Schuss ins Blaue... ich habe ein paar " um den LIKE Teil eingefügt.
Nobody-66
Mitglied
Beiträge: 45
Registriert: 21.10.2009 17:52

Re: SQL LIKE mit joker benutzen

Beitrag von Nobody-66 »

Dr.Death hat geschrieben:

Code: Alles auswählen

             $sql = 'SELECT *
             FROM ' . TABLE . '
             WHERE wert1 = ' . $wert1  . ' AND wert2 LIKE "' . $wert2 . '%"' ;
             $result = $db->sql_query($sql);
             $row = $db->sql_fetchrow($result);
             $db->sql_freeresult($result);
Bin gerade mobil untergwegs... Daher nur ein Schuss ins Blaue... ich habe ein paar " um den LIKE Teil eingefügt.
vielen vielen dank, der schuss war ein volltreffer :D
Antworten

Zurück zu „[3.0.x] Mod Bastelstube“