Bien exploiter cette base !

Eléphant du PHP | 79 Messages

20 oct. 2012, 17:38

Re, je relance donc ma question :

Comment faire pour afficher les 3 plus grands résultats de `distance_traveled`
    public function getMostDistancer2() {
        $res = mysql_query('SELECT `uuid` name, SUM(`distance_traveled`) count
                                                FROM players
                                                WHERE distance_traveled != -1
                                                GROUP BY `uuid`
                                                ORDER BY count DESC
                                                LIMIT 3');
        while($row = mysql_fetch_assoc($res)) { $rows[] = $row; }
     
        return $rows;
    }

Dans ce contexte :
          <?php
            $ar = $serverObj->getMostDistancer();
            $player = $serverObj->getPlayer($ar['name']);
            if ($player) { 
            	        echo(STRING_ALL_DISTANCER); 
            	?>
            : </h2>
           <a class="fort" href="?view=player&uuid=<?php echo($player->getUUID()); ?>"><?php echo($player->getName()); ?></a>
            <?php 
            	        echo $rows[0];
            	    ?>
            <?php } else echo(STRING_ALL_NONE); ?>
Erreurs actuelles :
NOTICE: UNDEFINED INDEX: NAME
Notice: Undefined variable: rows
Un grand merci à celui qui trouvera...
Mon site dédié à Minecraft : http://www.orminecraft.com
Et celui dédié à ses serveurs multijoueur ;) http://www.serveurs-minecraft.net

ViPHP
AB
ViPHP | 5818 Messages

22 oct. 2012, 04:29

Faudrait apprendre à débugguer un peu : pour voir les erreurs, tu peux faire afficher le résultat pour regarder ce que cela donne, genre
$ar = $serverObj->getMostDistancer();
print_r($ar);
//...
Là j'ai utilisé "print_r" parce que tu attends un tableau en retour mais si tu ne sais pas trop ce que cela va retourner tu peux utiliser "var_dump" à la place.
Fais des tests à coups de print_r ou var_dump pour contrôler les valeurs !

Déjà tu appelles getMostDistancer() alors que ta fonction se nomme getMostDistancer2.
Et puis tu fais echo $rows[0]; alors que tes résultats sont normalement dans $ar, fais attention !