Hey, ik gebruik een soort van ledensysteem waarbij ik op deze pagina alle leden uit de db haal met daarbij hun aantal posts enz, dat zijn hun punten. Nu wil ik deze ordenen van hoog naar laag dus bovenaan de meeste punten onderaan minste. Maar ik zie niet precies hoe ik dit kan doen omdat ik anders wel met m'n mysql query kan ordenen maar aangezien hier de waarden voor het ordenen pas na de query bekent zijn zie ik niet juist hoe ik dit kan doen:s


<?
$u = mysql_query("SELECT * FROM user_users WHERE status = 1") or die(mysql_error());
while($fd = mysql_fetch_array($u)){
    ...
    $uhits = (mysql_num_rows(mysql_query("SELECT * FROM u_uhits WHERE u ='".$fd['u']."'")))*20;
	$comments = (mysql_num_rows(mysql_query("SELECT * FROM u_comments WHERE u='".$fd['u']."'")))*20;
	$tpoints = $tmedia + $uhits + $comments;
     #nu heb ik dus de points van een blog maar hoe orden ik die nu?

}
?>
Idd, ik haalde ze door elkaar. order by kolomnaam.
Maar die berekening kun je toch ook gewoon in je sql query uitvoeren? Als je het een beetje netjes uitschrijft, moet je er wel uitkomen.

Ik denk dat het dan zoiets zou worden:
<?php
$sql = "
SELECT *,
(
(SELECT COUNT(*)
FROM u_uhits
WHERE u = user_users.u
) * 20
+
(SELECT COUNT(*)
FROM u_comments
WHERE u = user_users.u
) * 20
+
".$tmedia."
) AS totaal
FROM
user_users
WHERE
user_users.status = 1
ORDER BY
totaal DESC
";
?>
Query is niet getest, maar denk dat het wel in deze richting zit...
Ja dat is wat ik zocht, kwist niet dat zoiets mogelijk was. Thx

Reageren