Zum Inhalt springen

Datenbankabfrage - Shift-Methode - einzelnen Checkboxwert aus Gesamtwert ermitteln

Erstellt am 6. April 2010 · 3 Antworten · letzte Antwort am 7. April 2010

Tags: Datenbank, Frage

cooper64 ·

Hi there,

ich steh gerade mächtig auf dem Schlauch, ist vielleicht die Wärme heute 😉

Hab im Kickstarter die fe_users erweitert um Interessen. Die sind als Checkboxen angelegt, man kann ja mehrere Interessen haben.

Wähle ich nun die 1. die 3. und die 5. Checkbox aus, wird der Wert 21 in der DB gespeichert.

1 2 3 4 5...
1 2 4 8 16...

Die selectierten Boxen in PHP wieder mit der Shift-Methode auszuwerten ist kein Problem.

Jetzt muss ich allerdings eine Suchabfrage an die DB senden, die ermittelt ob der User sich vielleicht für das Interessengebiet Nr. 2 ODER das Interessengebiet Nr. 5 interessiert.

Wie formuliere ich das in meiner DB-Abfrage, ob eine Teilmenge 16 in dem Gesamtwert 21 enthalten ist?
Lässt sich sowas überhaupt in einer DB-Abfrage umsetzen?

cooper

helmet ·

Würde mal sagen wenn der Gesamtwert größer/gleich 16 und kleiner 32 ist, dann ist das Interessensgebiet 5 (Wert 16) ausgewählt.

cooper64 ·

Hallo,

hilft mir leider noch nicht so richtig weiter. Ich versuche es noch mal am Beispiel:

Ein User hat die 668 eingetragen in der DB. Da steckt diese Auswahl drin:

512
128
16
8
4
----
668

Die Frage ist nicht, wie ich auswerte, welche er angehakt hat, das funktioniert bereits, sondern wie formuliere ich eine SQL-Datenbankabfrage:

Welcher User interessiert sich für das Gebiet mit dem Wert 4 oder 32?

Ich kann nicht beigehen und alle User aus der DB holen, um sie dann auf PHP-Seite auszuwerten, das wäre viel zu lastig. Außerdem werden in derselben Abfrage noch einige andere Eigenschaften des Users ausgewertet, nicht nur seine Interessen.

Ich hatte gehofft, da es sich um eine typische Typo-Methode handelt, Radio- und Checkboxen in dieser Form zu speichern, dass ich nicht der erste bin, der vor diesem Problem steht. 🙂

cooper

helmet ·
cooper64 schrieb

Ich kann nicht beigehen und alle User aus der DB holen, um sie dann auf PHP-Seite auszuwerten, das wäre viel zu lastig. Außerdem werden in derselben Abfrage noch einige andere Eigenschaften des Users ausgewertet, nicht nur seine Interessen.

Die Abfrage kannst Du doch über MySQL formulieren.