Waar zou $row['niv_naam'] vandaan moeten komen? Je vraag nickname en user_niveau op (zie query), daar kom ik niv_naam niet in tegen.
Tevens zie ik niet wat het verband zou moeten zijn tussen de array en de query. Het enige dat ik kan bedenken, is dat er nog ergens een stuk script is dat een verband legt.
Ik dacht dat die zou moeten corresponderen met de array... maar dat is dus blijkbaar niet zo...
Is het dan wel handig om het op deze manier te doen? Of is er een betere oplossing voor dit soort dingen? Steeds als die if statements of case regels zijn veel code en werk en zijn onoverzichtelijk uiteindelijk.
Ik zoek een korte universele oplossing! Wie o wie!
Gebruik eens een CASE in de query:
<?php
$query = "
SELECT
nickname,
CASE
WHEN niveau = 1 THEN 'Gebruiker'
WHEN niveau = 2 THEN 'Moderator'
WHEN niveau = 3 THEN 'Webmaster'
ELSE 'onbekend'
END
AS nivnaam
FROM
tabelnaam
";
?>
Deze retourneert 'nivnaam', die je na het fetchen kunt opvragen met bv. $row['nivnaam'].
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 WHEN niveau = 0 THEN 'Gebruiker' WHEN niveau = 1 THEN 'Mode' at line 6
Ik ben even gaan zoeken naar query's die ook met een WHEN statement werken en die doen na elke WHEN weer een else. Dat moet ik dus ook maar eens proberen!