Seite 1 von 1

SQL LIKE mit joker benutzen

Verfasst: 02.08.2011 20:10
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

Re: SQL LIKE mit joker benutzen

Verfasst: 03.08.2011 01:28
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.

Re: SQL LIKE mit joker benutzen

Verfasst: 04.08.2011 22:47
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:

Re: SQL LIKE mit joker benutzen

Verfasst: 04.08.2011 23:39
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.

Re: SQL LIKE mit joker benutzen

Verfasst: 10.08.2011 23:09
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%

Re: SQL LIKE mit joker benutzen

Verfasst: 11.08.2011 07:53
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);

Re: SQL LIKE mit joker benutzen

Verfasst: 15.08.2011 17:41
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:

Re: SQL LIKE mit joker benutzen

Verfasst: 15.08.2011 18:07
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.

Re: SQL LIKE mit joker benutzen

Verfasst: 15.08.2011 18:17
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