Versio

New error, new topic :x

Overzicht Reageren

Wesley

Wesley

24/12/2007 16:15:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$MySQL[001] = "SELECT * FROM catagorieen WHERE accesslvl='0,1,2'";


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
 
PHP hulp

PHP hulp

25/05/2012 07:25:57
Gesponsorde koppelingen:
BHosted Hosting al vanaf € 1,- per maand

Controleer nu gratis jouw domeinnaam:

  
 
Joren de Wit
Beheerder

Joren de Wit

24/12/2007 16:16:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
SELECT *
FROM categorieen
WHERE accesslvl = 0
OR accesslvl = 1
OR accesslvl = 2

Of:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
SELECT *
FROM categorieen
WHERE accesslvl IN (0, 1, 2)
 
- SanThe -

- SanThe -

24/12/2007 16:18:00
Quote Anchor link
SELECT ... FROM .... WHERE ... IN (1, 2, 3)
 
Frank -

Frank -

24/12/2007 16:18:00
Quote Anchor link
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.
 
Joren de Wit
Beheerder

Joren de Wit

24/12/2007 16:24:00
Quote Anchor link
pgFrank:
accesslvl kan namelijk onmogelijk zowel de waarde 0 als 1 als 2 hebben
Een lijst met gebruikers die bepaalde rechten hebben waarvoor accesslvl 0, 1 of 2 een minimale vereiste is?

Ik kan me wel voorstellen dat je ooit zo'n query nodig zou kunnen hebben, maar waarschijnlijk heb je gelijk :-)
 
Wesley

Wesley

24/12/2007 16:26:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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]);


;)

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
 
Frank -

Frank -

24/12/2007 16:26:00
Quote Anchor link
@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.
 
Wesley

Wesley

24/12/2007 16:37:00
Quote Anchor link
De oplossing? Want de query wat mij gegeven is werkt niet echt..
 
Joren de Wit
Beheerder

Joren de Wit

24/12/2007 16:46:00
Quote Anchor link
Quote:
Wanneer er sprake is van een 'en', zal het met een koppeltabel moeten gebeuren, dus een JOIN.
Uiteraard. Heb ik het niet goed gelezen...

@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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$sql
= "
    SELECT *
    FROM categorieen
    WHERE accesslvl <= "
.$_SESSION['accesslvl'];
?>
 
Wesley

Wesley

24/12/2007 17:15:00
Quote Anchor link
Die had ik nodig, nu kijken of het werkt


EDIT:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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]."'";
}

Did the trick, SLOTJE! :)
Gewijzigd op 01/01/1970 01:00:00 door Wesley
 



Overzicht Reageren