verschiedenste SQL Abfragen generieren, aber wie?

Registrierer

Erfahrenes Mitglied
Hallo Wissende...,
ich grüble über eine Lösung, wie ich mit verschiedenen Benutzern entsprechend verschiedene SQL Abfragen generieren kann.
z.B.: wenn user=2 (darf nur 2 auswählen)
$ergebnis = mysql_query("SELECT * FROM $sql where user=2") or die(mysql_error());
z.B.: wenn user=1 (darf nur 1 und 2 auswählen)
$ergebnis = mysql_query("SELECT * FROM $sql where user=2 OR user=1") or die(mysql_error());
z.B.: wenn user=3 (darf nur 1, 2, 5 und 6 auswählen)
$ergebnis = mysql_query("SELECT * FROM $sql where user=2 OR user=1 OR user=5 OR user=6") or die(mysql_error());
z.B.: wenn user=4 (darf alles auswählen)
$ergebnis = mysql_query("SELECT * FROM $sql) or die(mysql_error());

Da es die verschiedensten Konstelationen geben kann, wird es sicher eine andere Lösung geben als vorgefertigte SQL Abfragen mi "if".
Dies wäre auch sehr unzweckmäßig, da Benutzer hinzukommen, wegfallen,sich Rechte ändern können usw.
Bin in einer Sackgasse, wer hat Licht für mich?

Helmut
 
Mal ein Beispiel:
User 2 => nur 2
User 1 => 1 und 2
User 3 => 1, 2, 5, 6

Du hast also eine neue Tabelle (table) in der steht dann:
id - rights
2 - 2
1 - 1
1 - 2
3 - 1
3 - 2
3 - 5
3 - 6

Ergo können wir dann fragen:
SQL:
SELECT
  `field`
FROM
  `randomTable`
WHERE 
  `id` IN (
    SELECT `rights` FROM `table` WHERE `id` = $id
  )

Irgendwie so würde ich das bauen... Oder ich habe es missverstanden ;)
 
Danke, das sieht wirklich brauchbar aus. Komme erst am WE dazu dies zu testen.
Es ging mir ja um einen Denkansatz und den hast Du ja erstmal geliefert, danke nochmal.
Ich berichte vom Ergebnis...
 
Zurück