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"
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);
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
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);
 
					}
			}
	}