New error, new topic :x
De bovenstaande query werkte niet echt, wat moet ik wel doen om de forums op te halen waar accesslvl 0, 1, en 2 is?
(hij controleert het accesslvl van de sessie, en op hand daarvan haalt hij alle forums op)
Gewijzigd op 01/01/1970 01:00:00 door Wesley
Gesponsorde koppelingen:
Of:
SELECT ... FROM .... WHERE ... IN (1, 2, 3)
Hoe ziet je datamodel eruit? accesslvl kan namelijk onmogelijk zowel de waarde 0 als 1 als 2 hebben. Of je moet een fout datamodel hebben, dan kan het wel, maar heb je er niks aan.
pgFrank:
Een lijst met gebruikers die bepaalde rechten hebben waarvoor accesslvl 0, 1 of 2 een minimale vereiste is?accesslvl kan namelijk onmogelijk zowel de waarde 0 als 1 als 2 hebben
Ik kan me wel voorstellen dat je ooit zo'n query nodig zou kunnen hebben, maar waarschijnlijk heb je gelijk :-)
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
if ($_SESSION['accesslvl'] <= 0) {
$MySQL[001] = "SELECT * FROM catagorieen WHERE accesslvl='0'";
} elseif ($_SESSION['accesslvl'] == 1) {
$MySQL[001] = "SELECT * FROM catagorieen WHERE accesslvl IN (0, 1)";
} elseif ($_SESSION['accesslvl'] >= 2) {
$MySQL[001] = "SELECT * FROM catagorieen WHERE accesslvl IN (0, 1, 2)";
} else {
$MySQL[001] = "SELECT * FROM catagorieen WHERE accesslvl='0'";
}
$MySQL['res'][001] = mysql_query($MySQL[001]);
$MySQL[001] = "SELECT * FROM catagorieen WHERE accesslvl='0'";
} elseif ($_SESSION['accesslvl'] == 1) {
$MySQL[001] = "SELECT * FROM catagorieen WHERE accesslvl IN (0, 1)";
} elseif ($_SESSION['accesslvl'] >= 2) {
$MySQL[001] = "SELECT * FROM catagorieen WHERE accesslvl IN (0, 1, 2)";
} else {
$MySQL[001] = "SELECT * FROM catagorieen WHERE accesslvl='0'";
}
$MySQL['res'][001] = mysql_query($MySQL[001]);
;)
Het is niet de bedoeling dat admins de topics met access 0 of 1 niet kunnen bekijken, vandaar. Query werkt by the way niet, hij laat niet alle 3 de topics zien ,terwijl ik accesslvl 2 had..
var_dump($_SESSION['accesslvl']) = string(1) "2"
Gewijzigd op 01/01/1970 01:00:00 door Wesley
@Blanche: 'en' en 'of' zijn twee totaal verschillende dingen. Jouw code controleert met een OR, dat wordt niet gevraagd.
Wanneer er sprake is van een 'en', zal het met een koppeltabel moeten gebeuren, dus een JOIN.
Wanneer er sprake is van een 'en', zal het met een koppeltabel moeten gebeuren, dus een JOIN.
De oplossing? Want de query wat mij gegeven is werkt niet echt..
Quote:
Uiteraard. Heb ik het niet goed gelezen...Wanneer er sprake is van een 'en', zal het met een koppeltabel moeten gebeuren, dus een JOIN.
@Wesley: wat wil je nu precies bereiken? Zoals door Frank al gezegd wordt is het onmogelijk om een topic op te halen waar het acceslvl zowel 0, 1 als 2 is tenzij je gebruik maakt van een koppeltabel om de accesslvl's aan een topic te koppelen...
Of wil je alle topics ophalen waarvan het accesslvl gelijk aan of kleiner is dan het accesslvl van de huidige gebruiker? Dan doe je toch gewoon:
Die had ik nodig, nu kijken of het werkt
EDIT:
Did the trick, SLOTJE! :)
EDIT:
Code (php)
1
2
3
4
5
2
3
4
5
if (!isset($_SESSION['accesslvl'])) {
$sql = "SELECT * FROM catagorieen WHERE accesslvl = '0'";
} elseif (isset($_SESSION['accesslvl'])) {
$sql = "SELECT * FROM catagorieen WHERE accesslvl <= '".$_SESSION[accesslvl]."'";
}
$sql = "SELECT * FROM catagorieen WHERE accesslvl = '0'";
} elseif (isset($_SESSION['accesslvl'])) {
$sql = "SELECT * FROM catagorieen WHERE accesslvl <= '".$_SESSION[accesslvl]."'";
}
Did the trick, SLOTJE! :)
Gewijzigd op 01/01/1970 01:00:00 door Wesley



