Je suis en train de faire un fichier qui compare la température moyenne d'octobre 2022 par rapport à la température moyenne de tous les mois d'octobre depuis le début de mes relevés en 2004. Je voudrais mettre dans un tableau la température du mois et le rang par rapport au autres mois d'octobre.
Pour ce faire, j'ai créé à l'aide d'une requête un classement de toute les températures moyennes des mois d'octobre par ordre décroissant puis avec des conditions j'indique le rang de la température du mois. Mon fichier est commandé par un monthpicker afin de pouvoir sélectionné les moi et l'année de mon choix.
Mon code
Code : Tout sélectionner
<?php
$i = 1;
$derniere_temperature = -1;
$sql = "SELECT Moy_T FROM noaa_mois WHERE Mois=$month ORDER BY Moy_T DESC";
if ($res = mysqli_query($conn, $sql)) {
if (mysqli_num_rows($res) > 0) {
while ($row = mysqli_fetch_array($res)) {
if($derniere_temperature == $row['Moy_T'])
{
$y++;
$classement = ($i - $y);
}
else{
$y = 0;
$classement = $i;
};
if(($temp_moy_mois == $row['Moy_T']) and ($classement == 1)) echo '1er record';
else if(($temp_moy_mois == $row['Moy_T']) and ($classement ==2)) echo '2ème record';
else if(($temp_moy_mois == $row['Moy_T']) and ($classement ==3)) echo '3ème record';
else if(($temp_moy_mois == $row['Moy_T']) and ($classement ==4)) echo '4ème record';
else if(($temp_moy_mois == $row['Moy_T']) and ($classement ==5)) echo '5ème record';
else if(($temp_moy_mois == $row['Moy_T']) and ($classement ==6)) echo '6ème record';
else if(($temp_moy_mois == $row['Moy_T']) and ($classement ==7)) echo '7ème record';
else if(($temp_moy_mois == $row['Moy_T']) and ($classement ==8)) echo '8ème record';
else if(($temp_moy_mois == $row['Moy_T']) and ($classement ==9)) echo '9ème record';
else if(($temp_moy_mois == $row['Moy_T']) and ($classement ==10)) echo '10ème record';
else if(($temp_moy_mois == $row['Moy_T']) and ($classement ==11)) echo '11ème record';
else if(($temp_moy_mois == $row['Moy_T']) and ($classement ==12)) echo '12ème record';
else if(($temp_moy_mois == $row['Moy_T']) and ($classement ==13)) echo '13ème record';
else if(($temp_moy_mois == $row['Moy_T']) and ($classement ==14)) echo '14ème record';
else if(($temp_moy_mois == $row['Moy_T']) and ($classement ==15)) echo '15ème record';
else if(($temp_moy_mois == $row['Moy_T']) and ($classement ==16)) echo '16ème record';
else if(($temp_moy_mois == $row['Moy_T']) and ($classement ==17)) echo '17ème record';
else if(($temp_moy_mois == $row['Moy_T']) and ($classement ==18)) echo '18ème record';
else if(($temp_moy_mois == $row['Moy_T']) and ($classement ==19)) echo '19ème record';
$i++;
$derniere_temperature = $row['Moy_T'];
}
mysqli_query($conn, $sql);
}
}
mysqli_close($conn);
?>
la varible $month est le mois que je sélectionne dans le monthpicker.
La variable $temp_moy_mois est la température moyenne du mois d'octobre 2022.
Avec ce code, mon fichier fonctionne.
Mais j'ai rencontré un problème avec le mois de février 2011. Le mois de février 2011 et le mois de février 2008 ont la même moyenne 4.44°C
Févier 2011 et février 2008 sont au 9ème rang donc le 9ème record. Mais le problème, dans mon tableau s'affiche deux fois 9ème record.
Donc mon code fonctionne, mais pour les mois avec des températures identiques. Comment puis-je faire pour n'avoir qu'un seul rang dans mon tableau même en cas de températures identiques. j'ai lu qu'on pouvait faire un requête pour fair un classement comme je l'ai et une sous requête pour déterminé le rang, mais je ne suis pas assez calé en php pour faire ce genre de chose.
Des idées?
Pascal