nicost

Inscris le 14/02/2008 à 17:48
  • Nombre de sujets
    2
  • Nombre de messages
    15
  • Nombre de commentaires
    Aucun
  • Nombre de news
    Aucune
  • Niveau en PHP
    Débutant

Ses dernières news

Aucune news

Ses derniers sujets sur les forums

forum
nicost
le 21/04/2008 à 18:34
classement
Bonjour tous smiley

J'ai plusieur jeu en flash auquel on a un score, au passage un grand merci à Globule pour sont aide dans cette aventure.

Maintenant se que j'essai de faire, est d'afficher les scores de tout les jeux et des joueurs.

Pas de problème j'arrive à faire l'affichage.

Mais en faite j'essai de faire un classement de celui qui a le plus gros scores jusqu'au plus petit.

Du coup je me demande comment l'on peu faire pour calculer le nombre du score du joueur sur tout les jeux qu'il a jouer.
Exemple : jeu bateau = score : 354
jeu bateau 2 = score : 125
354 + 125 = 479

Comment peut on arriver avec une requette sql pour calculer cela ?

Voila comment j'ai fait pour ma part, mais qui affiche simplement tout les scores des joueurs.

<?php
$demande = reqmysql(' SELECT jeux.nom_cach, jeux.nom, jeux.tri, jeux.status, scores.score, scores.utilisateur
FROM jouer_jeux as jeux
LEFT JOIN jouer_scores as scores ON scores.jeu = jeux.nom_cach
WHERE scores.utilisateur != "null" ORDER BY score',
'ORDER BY DESC'
) or die ('Erreur Requete SQL<br>'.$demande.'<br>'.mysql_error());

if(mysql_num_rows($demande) != 0)
{
echo'<table style="width:100%; text-align:center" align="center" border="0">
<tr>
<td><strong>Place</strong></td>
<td><strong>Nom</strong></td>
<td><strong>Score</strong></td>

</tr>';

while ($boucle = mysql_fetch_array ($demande))
{


$utilisateur = $boucle ['utilisateur'];
$scores = $boucle ['score'];

if (($utilisateur != '')&&($scores!=0)&&($utilisateur != 'visiteur')) {

echo "<tr><td width=\"5%\">".$place."</td><td width = \"25%\">".$utilisateur."</td><td width= \"25%\">".$scores."</td><tr>"; $place ++;}

}

echo '</table>';
}
else
{
echo'<p align="center">Aucun score.</p>';
}

?>

Merci de votre aide !
nicost
Bonjour à tous
Dans mon jeu en flash le score du joeur est enregistrer dans la base msql.
Si le joeur fait un plus gros score, alors le score ancien sera éffacer, et le nouveau score sera enregistrer.
Si le score est plus petit, il ne sera pas enregistrer normal
J'ai ajouter dans le jeu flash un bonus.
Des lors que le joeur attrape un bonus, il sera enregistrer comme pour les scores.
Malheureusement, si le joeur a fait un plus petit score MAIS qu'il a plusieur bonus, le bonus en question ne sera pas enregistrer.
Si par contre le joeur fait un plus gros score, alors les bonus en plus seron enregistrer.
Merci de votre aide

Ma table sql comporte plusieur champ :
Id
Jeu
Utilisateur
Score
et le Bonus que j'ai ajouter.

J'ajoute donc mon Bonus dans la requette
Mais j'arrive pas a placer correctement le Bonus pour qu'il soit pris en compte quand le score est quand même plus petit.

Ma page php qui envoie les scores et les bonus :
<?php
if (!emptyempty($_POST['game_name']))
{
$game_name =$_POST['game_name'];
}
if (!emptyempty($_POST['score']))
{
$score = $_POST['score'];
}
if (!emptyempty($_POST['bonu']))
{
$bonu = $_POST['bonu'];
}

$traitement_jeux = reqmysql('SELECT tri FROM jouer_jeux WHERE nom_cach="'.$game_name.'"');

while ($boucle = mysql_fetch_array ($traitement_jeux))
{
$tri = $boucle ['tri'];
}

$nom = ''.($pseudo == '' ? 'visiteur' : ''.$pseudo.'').'';
reqmysql("INSERT INTO `jouer_scores` (`Id`,`Jeu`,`Utilisateur`,`Score`,`Bonus`) VALUES ('', '$game_name', '$nom', '$score', '$bonu');");

$select_scores = reqmysql('SELECT * FROM jouer_scores WHERE Jeu="'.$game_name.'" AND Utilisateur="'.$nom.'" ORDER BY score DESC');
$position = 0;
$exaeco = 0;
$ancienscore = 0;

while ($boucle_recherche = mysql_fetch_array ($select_scores))
{

$bonu_bonu = $boucle_recherche['Bonus'];
$score_score = $boucle_recherche['Score'];
$nom = $boucle_recherche['Utilisateur'];

if ($ancienscore<>$score_score && $exaeco>0)
{
$position=$position+$exaeco+1;
$exaeco=0;
}
elseif ($ancienscore==$score_score)
{
$exaeco++;
}
else
{
$position++;
}

$ex=''.($exaeco > 0 ? 'ex.' : '').'';

if ($tri == 0)
{
if ($position>1)
{
reqmysql('DELETE FROM jouer_scores WHERE Bonus="'.$bonu_bonu.'" Score="'.$score_score.'" AND Utilisateur="'.$nom.'"');

if ($bonu > $bonu_bonu)
{
$meilleur='oui';
}


if ($score > $score_score)
{
$meilleur='oui';
}
}
}

if ($tri == 1)
{
if ($position >1)
{
reqmysql('DELETE FROM jouer_scores WHERE Bonus="'.$bonu.'" Score="'.$ancienscore.'" AND Utilisateur="'.$nom.'"');

if ($score < $ancienscore)

{
$meilleur='oui';
}
}
}

if ($exaeco>0)
{
reqmysql('DELETE FROM jouer_scores WHERE Score="'.$score_score.'" AND Utilisateur="'.$nom.'"');
reqmysql('INSERT INTO `jouer_scores` (`Id`,`Jeu`,`Utilisateur`,`Score`,`Bonus`) VALUES ("", "'.$game_name.'", "'.$nom.'", "'.$score_score.'", "'.$bonu.'");');
}

$ancienscore=$score_score;
}

?>

Ses derniers messages sur les forums

forum
nicost
le 22/04/2008 à 12:10
classement
Ok mais la c'est la table jouer_scores.
Dans la table jouer_scores j'ai un champ : Utilisateur et un autre champ : Score

Si je mes " FROM utilisateur " il ne trouve pas
nicost
le 22/04/2008 à 07:30
classement
Bonjour Globule
Je comprend pas, pourtant il est bien selectionner dans la requettte sniff
Je remarque qu'il calcul, mais pas dans l'ordre en faite style :
5252
3891
5022
504
4040
Merci de votre aide.
nicost
le 21/04/2008 à 23:11
classement
Apparament sa l'air de vouloir calculer, je me retrouve avec des scores plus grand, la position est bonne, mais l'affichage des utilisateur n'est pas présent.
Voila ou j'en suis :
Merci de votre aide.
<?php 
$demande = reqmysql(' SELECT sum(score) score FROM jouer_scores GROUP BY utilisateur '

) or die ('Erreur Requete SQL<br>'.$demande.'<br>'.mysql_error());

$position = 0;
$exaeco = 0;
$ancienscore = 0;

if(mysql_num_rows($demande) != 0)
{
echo'<table style="width:100%; text-align:center" align="center" border="0">
<tr>
<td><strong>Place</strong></td>
<td><strong>Nom</strong></td>
<td><strong>Score</strong></td>

</tr>';

while ($boucle_recherche = mysql_fetch_array ($demande))
{
$score_score = $boucle_recherche['score'];
$utilisateur = $boucle_recherche['utilisateur'];

if ($ancienscore<>$score_score && $exaeco>0)
{
$position = $position+$exaeco+1;
$exaeco = 0;
}
elseif ($ancienscore==$score_score)
{
$exaeco++;
}
else
{
$position++;
}

$ex = ''.(exaeco > 0 ? 'ex.' : '').'';


echo '
<tr>
<td style="width:30%"><img src="'.$position.'.png"/></td>
<td style="width:35%">'.$utilisateur.'</td>
<td style="width:35%">'.$score_score.'</td>
</tr>';

$ancienscore=$score_score;
}
}
?>

Ses derniers commentaires de news

Aucun commentaire de news

Ses derniers commentaires de sites

Aucun commentaire de sites

Ses derniers commentaires de wall

Aucun commentaire wall
LoadingChargement en cours