Jeg vaelger at gaa ud fra at det er som jeg spoerger i #5, valgene er altid fortloebende tal skoent der kan vaere mere end tre valg.
For test lavede jeg en tabel som jeg kalder ddd_valg3 saaledes:
id user 123
1 User1 1
2 User1 1
3 User1 1
4 User1 3
5 User2 2
6 User2 3
Det kan godt vaere at der findes en smart mysql jeg ikke kender (i saa fald maa vi haabe at et andet medlem laeser dette og goer os opmaerksomt paa det) men i min foreslaaede loesning henter jeg fra mysql de raa data og saa formatterer jeg dem i php. Jeg goer brug af en multi-dimensionel array. Hvis du ikke kender den foreslaar jeg at du googler den op og kikker paa den (for eksempel
http://www.phpf1.com/tutorial/php-multidimensional-array.html ).
Nedenstaaende kode gav dette resultat som du kan se paa
http://christianjorgensen.be/ddd_valg.php :
User1 - 3 - 0 - 1
User2 - 0 - 1 - 1
Og her foelger koden som jeg har forsynet med forhaabenlig forstaaelige kommentarer.
//jeg undersoeger foerst hvad det hoejeste valgnummer er og gemmer det i $number
$n = mysql_query("SELECT MAX(`123`) FROM ddd_valg3")or die(mysql_error());
$number = mysql_result($n, 0);
//saa henter jeg, for hver user og valg, antal valgte
$result = mysql_query("SELECT user, `123` as valgt, COUNT(*) as count FROM ddd_valg3 GROUP BY user, `123` ORDER BY user, `123`")or die(mysql_error());
//en hjaelpevariabel til at se hvornaar man kommer til en ny user
$username = "";
//saa henter jeg resultatet af queryen og gemmer det i en to-dimensional array
while($row = mysql_fetch_array($result))
{
$user = $row['user'];
$valgt = $row['valgt'];
$count = $row['count'];
//her laves den to-dimensionale array.
if($user != $username) $username = $user;
$array[$username][$valgt] = $count;
}
//saa skriver jeg resultatet ud som du foreskrev. Med $i foelger jeg med i om der for hvert
//tal er en count. Hvis ikke, saa indsaetter jeg 0
foreach($array as $username => $valgt)
{
$i = 1;
echo $username;
foreach($valgt as $valgnummer => $antal)
{
while($i <= $number && $i < $valgnummer)
{
echo " - 0";
$i++;
}
echo " - $antal";
$i++;
}
while($i <= $number)
{
echo " - $i";
$i++;
}
echo "<br>";
}