Cherche requete pour créditer les 5 meilleurs joueurs - Forums de discussion
Navigation
Accueil du forum
» PHP » Cherche requete pour créditer les 5 meilleurs joueurs
Le sujet
Cherche requete pour créditer les 5 meilleurs joueursPar
toto02200, le Mercredi 24/02/2010 à 17h00'13
4 messages
Bonjour.
J'ai un classement des 20 meilleurs joueurs, et je cherche a créditer les 5 meilleurs joueur (qui ont le plus de point au jeu), d'une prime de 10000 points.
Pourriez-vous me dire quelle requete pourrai-je faire pour que les 5 meilleurs du classement, puissent recevoir la prime de 10000 points s'il vous plait?
Si vous avez des questions ou si je dois préciser quelques trucs, n'hésitez pas.
Merci a ceux qui prendront la peine de m'aider.
________________
toto02200
Les réponses

Par
toto02200, le Jeudi 25/02/2010 à 11h29'33
4 messages
Personne pour trouver la requete adequat?
S'il vous plait, j'ai cherché pas mal sur le web, j'ai pas trouvé mon bonheur malgrés tout mes mots clés tapés.
Help please.
Merci par avance.
________________
toto02200

Par
xerses, le Vendredi 26/02/2010 à 14h59'00
736 messages
Avec un LIMIT 5 sur ta liste de joueur triée par le nombre de points au jeu.
Là t'auras ta liste des 5 meilleurs que tu peux créditer avec une autre requête.
________________
Anything that can go wrong will go wrong (Murphy)
Statut:
Modérateur

Par
toto02200, le Jeudi 04/03/2010 à 02h41'09
4 messages
Bonjour et merci pour cette première réponse, mais mon soucis ne se limite pas a celà justement.
Voici ce que j'ai fais et qui fonctionne bien:
<?
$date1=RemakeDate(-0);
$date2=RemakeDate(-1);
$regHistoGain = "SELECT * FROM log_concours_pieces_or where date='$date2' and nomJeux>='$ticket_concours_pieces_or' and nbPieces_or<>0 ORDER BY nbPieces_or DESC, id LIMIT 0,5";
$exec = mysql_query ($regHistoGain) or die("erreur" );
?>
Celà me donne bien un tableau avec la liste des 5 joueurs qui ont fait le plus de pièces d'or, mais je cherche quelle requete me faudrait-il pour créditer ces 5 joueurs là et c'est là que je patoge n'étant pas trés fort là-dessus.
Voici ma table log:
CREATE TABLE IF NOT EXISTS `classement_concours_pieces_or` (
`id` int(11) NOT NULL auto_increment,
`username` varchar(20) NOT NULL default '',
`date` date NOT NULL default '0000-00-00',
`heure` time NOT NULL default '00:00:00',
`nomJeux` varchar(50) NOT NULL default '',
`IP` varchar(15) NOT NULL default '',
`gainjour_concours_pieces_or` int(11) NOT NULL default '0',
`position` int(11) NOT NULL default '0',
PRIMARY KEY (`id`),
KEY `username` (`username`),
KEY `date` (`nomJeux`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=126 ;
Tout s'enregistre bien, sauf dans le champ position, qui reste a 0 et de plus, je ne trouve pas le code correct pour créditer les 5 meilleurs joueurs qui s'affichent sur mon tableau.
Si quelqu'un peu me donner un éxemple a adapter, ce serai gentil s'il vous plait.
Voici le code sur le fichier cron, et c'est sur celui-ci que je patoge, ça ne crédite aucun des 5 meilleurs joueurs :
<?
function RemakeDate($T)
{
$dateRenvoi=mktime(0,0,0,date("m"),date("d") + $T,date("Y"));
$dateRenvoi=date('Y-m-d',$dateRenvoi);
return ($dateRenvoi);
}
for ($i=0;$i<1;$i++)
{
$uneDate=RemakeDate(-$i);
$laRequete="Select sum(nbPieces_or) from log_concours_pieces_or Where date='$uneDate' and username='$username'";
$resultat = mysql_query($laRequete) or die ("err");
$jour[$i] = mysql_result($resultat,0,"sum(nbPieces_or)");
}
$date1=RemakeDate(-0);
$date2=RemakeDate(-1);
$regHistoGain = "SELECT * FROM log_concours_pieces_or where date='$date2' and nomJeux>='$ticket_concours_pieces_or' and nbPieces_or<>0 ORDER BY nbPieces_or DESC, id LIMIT 0,5";
$exec = mysql_query ($regHistoGain) or die("erreur");
mysql_query("UPDATE info_membres set points=points+$points_prime where username='$pseudo'") or die ("erreur SQL");
mysql_query("INSERT INTO classement_concours_pieces_or VALUES('','$username','$date','$heure','nomJeux','$IP','$gainjour_concours_pieces_or','$position')") or die("Erreur3");
AjouterPoints(100000,"Prime_concours_Pieces_or");
?>
Merci pour votre aide et/ou vos conseils.
Je repasse derrière un autre programmeur et je dois trouver les soucis qu'ils m'a laissé. Donc ceci éxplique celà.
[Message édité par xerses le 04/03/2010 à 14h58'06]
________________
toto02200

Par
xerses, le Jeudi 04/03/2010 à 15h16'05
736 messages
Il nous manque pas mal de code pour bien comprendre le fonctionnement de ton appli j'ai l'impression. Entre autre, l'implémentation de la fonction AjouterPoints(), et les valeurs des différentes variables utilisées ($points_prime, $position, etc.)
Ce code ne sert à rien, vu qu'on y rentre qu'une seule fois :
for ($i=0;$i<1;$i++)
Je n'arrive pas vraiment à saisir comment fonctionne ce code que tu nous montres. En tout cas, de ce que j'ai compris, cela semble simple à implémenter :
- Tu récupères les 5 meilleurs gars comme tu le fais avec ta première fonction.
- Pour chacun d'eux, tu récupères ses points auxquels tu rajoutes la prime et tu updates ta base avec les nouvelles valeurs.
Dans le code que tu nous donnes, il y a apparemment plusieurs traitement dont le remplissage d'une base (classement_concours_pieces_or) pour afficher tes gagnants par la suite je suppose. Il faut que tu arrives à séparer clairement ces différents traitements pour pouvoir t'y retrouver.
Je conseille également de mettre des commentaires avant chacun de tes appels SQL pour savoir à quoi ils correspondent.
Bonne continuation.
________________
Anything that can go wrong will go wrong (Murphy)
Statut:
Modérateur
Pages
A lire également
- Les conditions générales d'utilisation du site
Top-sites membres
Discussions récentes dans les forums