Ha allemaal,

Ik ben lekker aan het stoeien met mijn rechten systeem.

Ik vind het zonde om elke keer als ik wil laten zien dat de gebruiker webmaster is of moderator alle if statements of cases af te gaan.

Daarom dacht ik slim te zijn deze niveaus in een array te zetten.

Kijkende naar de datum array zoals ik 'm gebruik voor de mooie data

dus

<?php
//nette datum weergeven
$weekdagnamen = array ('zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag');
$maandnamen = array (1 => 'januari', 'februari', 'maart', 'april', 'mei', 'juni', 'juli', 'augustus', 'september', 'oktober', 'november', 'december');
?>

ophalen met:

<?php
DATE_FORMAT(last_date, '%d-%c-%Y') AS user_datum,
DATE_FORMAT(last_date, '%H:%i:%s') AS user_tijd,
?>

dacht ik dit ook te kunnen doen met het niveau

array

<?php
//benaming van niveau weergeven
$nivnaam = array (1 => 'Gebruiker', 'Moderator', 'Webmaster');

?>

dus de query wordt

<?php

$sql = "SELECT nickname, niveau AS user_niveau";

?>

en dan weergeven als:

<?php
echo $row['niv_naam'];
?>

Alleen dit werkt niet. Ik denk vast te simpel over deze situatie. Wie kan me op weg helpen?

Alvast bedankt!

Cris
Stom! Een komma verkeerd. Hij werkt nu als volgt:

<?php
$sql_gebruikerslijst = "SELECT
id,
nickname,
email,
CASE
WHEN niveau = 0 THEN 'Gebruiker'
WHEN niveau = 1 THEN 'Webmaster'
WHEN niveau = 2 THEN 'Moderator'
ELSE 'Onbekend'
END
AS nivnaam,
DATE_FORMAT(last_date, '%d-%c-%Y') AS user_datum,
DATE_FORMAT(last_date, '%H:%i:%s') AS user_tijd,
actief,
block
FROM users ORDER BY '$sort' ASC LIMIT ".$offset.",".$messagePerPage;
?>

Heel fijn! Bedankt allemaal! Toch fijn dat we er allemaal iets aan hebben jongens! ;) Ik met mijn soms lastige vragen...
Ik ben nu wel benieuwd wat er gebeurt als je END CASE gebruikt ipv END omdat mysql dit voorschrijft
Klaasjan schreef op 24.08.2006 23:57
Ik ben nu wel benieuwd wat er gebeurt als je END CASE gebruikt ipv END omdat mysql dit voorschrijft


Had ik het toch goed?
@Klaasjan: Zie ook de note:
The syntax of the CASE statement shown here for use inside stored routines differs slightly from that of the SQL CASE expression described in Section 12.2, “Control Flow Functions”. The CASE statement cannot have an ELSE NULL clause, and it is terminated with END CASE instead of END.

Het is mij niet helemaal duidelijk waarom, maar de ene keer gebruik je END CASE en de andere keer END.
Wanneer ik END CASE doe met verder precies dezelfde query krijg ik dit:


You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CASE AS nivnaam, DATE_FORMAT(last_date, '%d-%c-%Y') AS user_da' at line 10


Dat vind mysql dus niet helemaal lekker

@Frank: Gelukkig heb je dan altijd 50% kans. Dat is iig iets! ;)

Reageren