ik heb een vraagje maar weet niet of het wel mogelijk is wat ik wil..
ik heb 2 tabellen. een met members en een met punten die de members gehaald hebben.
ik wil een lijst met members en het totaal aantal punten dat ze hebben gehaald op volgorde van de punten hebben (dus degene met de meeste punten bovenaan)
het probleem is dat het totaal aantal punten niet in de tabel staat omdat dat telkens veranderd. dus die moeten in de lus berekent worden en daarna kunnen ze pas op volgorde gezet worden.. maar dat lukt me dus niet.
ik weet dat het een onduidelijk verhaal is maar hoop dat iemand het begrijpt :S
We gaan er van uit dat je de volgende gegevens hebt
in tabel "member" member_id, en username,
in tabel "punten" member_id, en punten
<?
//functie voor het selecteren van de gebruikers naam. aan de hand van member_id. Dit kan overal gebruikt woorden.
function select_member($id)
{
//sql query die volgens mij genoeg uit legt
$sql = "SELECT username FROM member WHERE member_id = '".$id."' ";
//voer de sql query uit
$uit = mysql_query($sql);
//haal gegevens op en stop allen in een array
$row = mysql_fetch_assoc($uit);
//return de waarde in cel 'username'
return $row['username'];
}
//sql query voor de "punten" georderd op punten aantal DESC omdat 1000 hoger is dan 1 en 1000 boven aan wilt hebben
$sql = "SELECT member_id, punten FROM punten ORDER BY punten DESC";
//voer query uit
$uit = mysql_query($sql);
//voor volgende stap uit todat alles is geweest.
while($row = mysql_fetch_assoc($uit)){
//echo alles eventueel met een punten aantal. een variable als 1 defineren en steeds 1 er bij.
echo select_member($row['id']). " ".$row['punten'];
}
?>
Nee dat help niet en ik heb dit probleem ook gehad en ik heb er een oplossing voor.
Je maakt bij te tabel van members een rij punten (int)
en dan zet je vanboven van je script pagina
<?php
$sql = "SELECT * FORM member";
$res= mysql_query($sql);
$aantal_leden= mysql_nuw_rows($res);
for($i=0,$i<$aantal_leden;$i++){
$row= mysql_fetch_array($res);
$punten=""//Hier zet je manier van punten berekenen
$sql="Update members set punten='$punten' where member_id='$row[member_id]'"
}
[quote]Nee dat help niet en ik heb dit probleem ook gehad en ik heb er een oplossing voor.
Je maakt bij te tabel van members een rij punten (int)
en dan zet je vanboven van je script pagina
<?php
$sql = "SELECT * FROM member";
$res= mysql_query($sql);
$aantal_leden= mysql_nuw_rows($res);
for($i=0,$i<$aantal_leden;$i++){
$row= mysql_fetch_array($res);
$punten=""//Hier zet je manier van punten berekenen
$sql="Update members set punten='$punten' where member_id='$row[member_id]'"
}
hoe maak ik een lijst met de 5 hoogste totaalpunten?? kan dat zonder een veld totaal te hebben dus dat je het eerst berekend en dan op volgorde zet.. of moet je perse een veld totaal aanmaken??