Wert/Ausdruck in Tabellen-Spalte finden

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
Helmut
Mitglied
Beiträge: 2048
Registriert: 27.12.2002 20:35
Wohnort: Augsburg

Wert/Ausdruck in Tabellen-Spalte finden

Beitrag von Helmut »

Hallo,

ich bin schon eine Weile dran und komme nicht hinter die Lösung.

Ich möchte aus einer Tabelle einem oder mehrere Datensätze auslesen, welche in einer bestimmten Spalte einen Wert/Ausdruck enthalten. Mein Code sieht momentan so aus:

Code: Alles auswählen

$seite = 17; //Test Beispiel

    $sql = 'SELECT *
        FROM ' . XYZ_TABLE . "
            WHERE (seite REGEXP '($seite,[:>:])')
        ORDER BY seite_id";
        $result = $db->sql_query($sql);    
        $row = $db->sql_fetchrow($result);
 
In der Spalte 'seite' sind die Seitenzahlen durch ein Komme getrennt enthalten, z.B. 5,17,25,38,103,117, Es können unterschiedlich viele Zahlen durch ein Komma getrennt eingetragen sein.

Ich möchte nun zum Beispiel alle Datensätze haben, welche in der Spalte 'seite' die Zahl 17 enthalten, aber nicht die Zahl 117.

Ich habe schon verschiedene Versuche mit LIKE und REGEXP gemacht, aber irgendwie finde ich die Lösung nicht. Entweder werden die falschen Datensätze ausgewählt, z.B.17 und 117 obwohl nur 17 gesucht wurde, oder es wird gar kein Datensatz ausgewählt.


[EDIT]
Ich habe die Lösung gefunden, mit FIND_IN_SET geht es.

Code: Alles auswählen

$seite = 17; //Test Beispiel

    $sql = 'SELECT *
        FROM ' . XYZ_TABLE . "
            WHERE FIND_IN_SET(" . $seite . ", seite)
        ORDER BY seite_id";
        $result = $db->sql_query($sql);    
        $row = $db->sql_fetchrow($result);
  

Gruß Helmut
Ich bin nicht ganz dicht.... na und.
Antworten

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