Bestimmte Zahl aus Zahlenkette

  • Themenstarter Themenstarter Ec16
  • Beginndatum Beginndatum
E

Ec16

Moin,

stehe mal wieder voll auf dem Schlau.
Kann mir vielleicht jemand an diesem Sonntag helfen mein Problem zu lösen?

Folgendes:
Ich habe ein DB und möchte bei dieser überprüfen ob ein User in einer Bestimmten Gruppe ist.
Die Gruppe wird in der Tabelle "members" und der Spalte "additional_groups" gespeichert. Wenn natürlich jetzt ein User in mehreren Gruppen ist steht dort z.B. folgender Wert mit Komma getrennt 1, 23, 45, 158, 160
Jetzt möchte ich einfach nur überprüfen ob ein User z.B. in der Gruppe 158 ist und ihm dann ein paar Texte mehr anzeigen.

Hab jetzt schon ein wenig gesucht aber bestimmt wieder die falschen Begriffe genommen und komme nicht weiter bzw. finde ich keinen Anfang.
Sonntags sollte man am besten nix machen. :)

Danke schon mal
 
Fragt sich woher die Texte kommen die du anhängen willst?

Du kannst mit FIND_IN_SET auch im SELECT-Teil arbeiten
SQL:
SELECT 
    m.*,
    -- $premiumgruppe ist eine Nummer, ergo ohne '
    FIND_IN_SET({$premiumgruppe}, m.additional_groups) > 0 AS flag_premiumgruppe,
    FIND_IN_SET({$itgendeinegruppe}, m.additional_groups) > 0 AS flag_irgendeinegruppe
    -- etc.
FROM 
    smf_members AS m
WHERE 
    -- $userid_tm ist ebenfalls eine Nummer
    m.id_member={$userid_tm}
Nachher knnast du diese Flag-Felder auswerten
 
Zuletzt bearbeitet von einem Moderator:
Warummachst du das ausserhalb der while-Schleife? Kommt immer nur eine Zeile?

Der folgende Test funktioniert einwandfrei
PHP:
//Test-SQL: Gibt genau eine Zeile aus
$sql = "SELECT FIND_IN_SET(123, '121,122,123') > 0 AS flag_premiumgruppe";

$result = mysql_query($sql);
$row = mysql_fetch_assoc($result);

if($row['flag_premiumgruppe']){
    echo 'OK';
}else{
    echo 'NOK';
}
 
Zurück