Bonjour
j'ai tenté la requête ci-dessous un Update avec une jointure sur une autre table, je ne comprends pas que ce soit avec un fichier php ou adapté à PhpMyAdmin la requête tourne sans donner de résultat.
calcul du nombre de score supérieur dans la table des "donnes_players" à un score défini de la table "classement_donne"
par contre j'ai réalisé ce que je voulais avec des requêtes différentes là il faut 2 secondes pour mettre à jour(avec les affichages qui me permettent de contrôler)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 //mise à jour du NScoreSup dans classement_donne pour la donne 1 $sql="UPDATE classement_donne AS cl INNER JOIN donnes_players AS dp ON dp.id_donnes=cl.id_donnes SET NscoreSup=(SELECT COUNT(score) FROM donnes_players WHERE dp.score>cl.score AND dp.id_donnes=cl.id_donnes)"; $connexion->query($sql);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 $sql="SELECT DISTINCT id_donnes FROM classement_donne"; $rep=$connexion->query($sql); while ($donnees = $rep->fetch()){ echo 'id_donnes : '.$donnees['id_donnes']. '<br />'; $sql2="SELECT score FROM classement_donne WHERE id_donnes = ".$donnees['id_donnes']; $rep2=$connexion->query($sql2); while ($donnees2 = $rep2->fetch()){ echo 'score : '.$donnees2['score']. '<br />'; $sql3="SELECT COUNT(score)AS NBscoreSup FROM donnes_players WHERE score>".$donnees2['score']." AND id_donnes=".$donnees['id_donnes']; $rep3=$connexion->query($sql3); while ($donnees3 = $rep3->fetch()){ echo 'NBscoreSup : '.$donnees3['NBscoreSup']. '<br />'; $sql4="UPDATE classement_donne SET NscoreSup =".$donnees3['NBscoreSup']." WHERE score=".$donnees2['score']." AND id_donnes=".$donnees['id_donnes']; $connexion->query($sql4); } } }
Partager