Question get BDD

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Question get BDD

Re: Question get BDD

par Baratox » 17 oct. 2012, 23:16

Au pire si je comprend vraiment rien, quelqu'un aurait-il un tuto sur "comment exploiter une base de donnée, comme je veux faire là" ?

Re: Question get BDD

par Baratox » 17 oct. 2012, 18:46

C'est bon j'ai fini par comprendre :)


Je créé une autre fonction avec ce que tu as écris :

Code : Tout sélectionner

public function getMostKillerPVP2() { $tab = array(); // tableau de résultats $rs = mysql_query('SELECT `killed_by_uuid` name, COUNT(`killed_by_uuid`) count FROM kills WHERE `killed_uuid` IS NOT NULL AND `killed_uuid` != " " AND `killed_by_uuid` IS NOT NULL AND `killed_by_uuid` != " " GROUP BY `killed_by_uuid` ORDER BY count DESC'); while ($row = mysql_fetch_assoc($rs) ) { // parcours les enregistrements $tab[] = $row; // ajoute chaque enregistrement dans le tableau } return $tab; // retourne le tableau }

J'appelle $tab sur ma page :

Code : Tout sélectionner

<?php $tab; ?>
Je n'ai pas d'erreur, mais problème, il n'affiche rien !

Re: Question get BDD

par Baratox » 17 oct. 2012, 15:24

Par contre je n'ai pas compris comment m'en servir, je débute vraiment.

Le code qui affiche le résultat le plus élevé, c'est :

Code : Tout sélectionner

<?php echo(STRING_SERVER_MOST_SQUISHY_PLAYER); ?>: <?php $ar = $serverObj->getMostKilledPVP(); $player = $serverObj->getPlayer($ar['name']); if ($player) { ?> <a id="onlinePlayer" href="?view=player&uuid=<?php echo($player->getUUID()); ?>"><?php echo($player->getName()); ?></a> - ( <?php echo $ar['count']; echo(STRING_ALL_PVP_DEATHS); ?> ) <?php } else echo(STRING_ALL_NONE); ?>

Re: Question get BDD

par Baratox » 17 oct. 2012, 14:55

Wow c'est super tu me gates ^^

Moi ça me fait rêver, l'exploit de db !

Merci pour ton aide, je vais m'amuser toute la nuit grace à toi :p

Re: Question get BDD

par Ryle » 17 oct. 2012, 11:18

En l'occurrence, ta requête ne retourne pas la valeur la plus élevée d'une table, mais elle retourne le nombre d'enregistrements trouvés par killed_by_uuid, trié par ordre décroissant. Ta fonction retourne ensuite le premier résultat de cette requête qui pour le coup correspond à celui qui a le plus d'enregistrements.

Si tu veux exploiter les autres valeurs, au lieu de faire un $row = ... et retourner cette valeur, il te suffit de boucler avec un while sur les résultats de ta requêtes. Tu auras ainsi un tableau contenant dans l'ordre le premier, le 2e, le 3e, etc.
$tab = array(); // tableau de résultats
$rs = mysql_query(...);
while ($row = mysql_fetch_assoc($rs) ) { // parcours les enregistrements
   $tab[] = $row; // ajoute chaque enregistrement dans le tableau
}
return $tab; // retourne le tableau
Si tu affiche $tab tu auras alors

Code : Tout sélectionner

Array ( 0 => Array (name : 'xxx', count : 789) 1 => Array (name : 'yyy', count : 456) 2 => Array (name : 'zzz', count : 123) )
Au besoin tu peux ajouter un "LIMIT 0, #" à ta requête pour ne recevoir que les # premiers résultats.

Pour MySQL et JSON, ben les mots clés sont MySQL et JSON :)
Le langage SQL te permet d'interroger ta base de données (MySQL ou autre).. JSON de mette en forme des données pour pouvoir exploiter des objets et des tableaux associatifs avec Javascript.

Question get BDD

par Baratox » 17 oct. 2012, 05:42

Bonjour,

J'ai une fonction qui appelle la valeur la plus élevée d'une table :

Code : Tout sélectionner

public function getMostKillerPVP() { $row = mysql_fetch_assoc(mysql_query('SELECT `killed_by_uuid` name, COUNT(`killed_by_uuid`) count FROM kills WHERE `killed_uuid` IS NOT NULL AND `killed_uuid` != " " AND `killed_by_uuid` IS NOT NULL AND `killed_by_uuid` != " " GROUP BY `killed_by_uuid` ORDER BY count DESC')); return $row; }
Elle fonctionne bien, mais j'aimerais savoir créer d'autres fonctions qui appellent la 2nd valeur la plus élevée, la 3eme, etc.

2eme chose, j'aimerais bien apprendre à exploiter les bases mysql et json, quelqu'un peut me donner des mots clés pour que je cherche ?

Merci !