hallo

Ik heb een rij msg_jaar waar meedere jaartallen in komen te staan.
nu wil ik dat de jaren die toegevoecht zijn 1 malig in een lijst komen te staan.

dus
2004
2005
2006
en 2007 pas al deze toegevoecht word

ik heb nu dit

<?
elseif (($_GET['button']) == 'kieskeurig')
{
echo "<h1>Artikels kieskeurig</h1>";

$query = "SELECT DISTINCT(msg_jaar),* FROM messages WHERE msg_type='".$_GET['button']."'";
$result = mysql_query($query) or die(mysql_error());
while ($row = mysql_fetch_assoc($result))
{
$msg_jaar = $row['msg_jaar'];
$msg_text = $row['msg_text'];
$msg_title = $row['msg_title'];

switch ($row['msg_jaar'])
{
case 2000: echo 'Dit is 2000 <br>'; break;
case 2005: echo 'Dit is 2005<br>'; break;
case 2008: echo 'Dit is 2008<br>'; break;
default: echo 'Dit is geen jaartal<br>'; break;
}
}
}
?>

maar het werkt niet helemaal zoals ik bedoeld had. het jaar 2008 komt vaker voor en hij geeft ook altijd weer "dit is geen jaartal" . wat gaat er fout en wat kan ik hier aan doen? of moet ik hier helemaal geen switche voor gebruiken?
Doe het eens andersom?

SELECT *,DISTINCT()

(weet niet zeker, maar kan een oplossing zijn)
als ik distinct gebriuk krijg ik de melding

Artikels kieskeurig
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 'DISTINCT(msg_jaar) FROM messages WHERE msg_type='kieskeurig'' at line 1


als ik het niet gebruik krijg ik de volgende uitkomst

Artikels kieskeurig
Dit is geen jaartal
Dit is 2008
Dit is 2005
Dit is 2008

of kan ik hiervoor beter een andere functie gebruiken?
Je kan wel de distinct gebruiken voor de lijst, maar dan moet je een andere query gebruiken voor het ophalen van gegevens.

Je krijgt dus:

<?php

$query_jaartal = "SELECT DISTINCT(msg_jaar) FROM messages WHERE msg_type='".$_GET['button']."'";
// Hier dan het lijstje met jaartallen maken.

$query_gegevens = "SELECT * FROM messages WHERE msg_type='".$_GET['button']."'";
// Hier dan de weergave van de gegevens
?>

Reageren