Comment afficher les 3 premières lignes d une colonne maximum

Résolu/Fermé
flexi2202 Messages postés 3801 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 octobre 2024 - 1 sept. 2021 à 21:47
jordane45 Messages postés 38326 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 2 décembre 2024 - 1 sept. 2021 à 23:45
bonsoir a tous
j essaye de trier la colonne total pour y faire sortir les 3 lignes des plus grand totaux

j essaye ceci mais sans succès
je dois encore faire la requête préparée une fois que le code fonctionnera
donc je sélectionne toute les colonnes que j ai besoin a afficher dont notamment la colonne total dont je désire récupérer les 3 plus grand montant
mais apparemment le tri ne s effectue pas ...
merci de l aide

<?php
//on affiche les erreurs
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);

//on se connecte a la base 
include('./base.php');

// On trie tout le contenu de la table pecheurs_perle pour n afficher que les 3 lignes dont le total est le plus élevé 
$reponse = $bdd->query('SELECT id, pseudo ,city_name,cours_do,duree,total,date_sortie
FROM   pecheurs_perle ORDER BY total DESC LIMIT 3');

// On affiche chaque entrée une à une
while ($donnees = $reponse->fetch())
{
?>
    <p>
    <strong>duree journnee de peche/strong> : <?php echo $donnees['duree']; ?><br />
    son id est   : <?php echo $donnees['id']; ?><br />
    son pseudo est <?php echo $donnees['pseudo']; ?> <br />
    le  lieu de peche est  <?php echo $donnees['city_name']; ?> <br />
    le nom du cours d eau  est<?php echo $donnees['cours_do']; ?> <br />
    la date de sortie est <?php echo $donnees['date_sortie']; ?> <br />
    le total <?php echo $donnees['total']; ?> :
   </p>
<?php
}

$reponse->closeCursor(); // Termine le traitement de la requête

?>

5 réponses

jordane45 Messages postés 38326 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 2 décembre 2024 4 712
1 sept. 2021 à 22:19
Bonsoir,

Une requête SQL .. ça se teste DIRECTEMENT dans la BDD avant d'essayer de l'utiliser dans du code php.
Donc, tu ouvres ton phpmyadmin.. tu vas dans l'onglet requête .. et tu y colles ta requête pour voir si elle correspond à tes besoins.

NB: Si c'est bien sur le total du plus grand au plus petit .. ta requête semble bonne
0
flexi2202 Messages postés 3801 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 octobre 2024 187
1 sept. 2021 à 22:34
bonsoir jordane

merci pour la réponse

je viens encore d apprendre quelque chose ...

la requête fonctionne mais la colonne total n a pas été bien triée ...
j obtiens des valeurs qui sont un peu aléatoire ...
même si je retire ce morceau
j obtiens bien un tri mais d aucune colonne ...
pourtant j ai bien une petite pyramide sur la colonne total après le lancement de la requête

DESC LIMIT 3
0
flexi2202 Messages postés 3801 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 octobre 2024 187
Modifié le 1 sept. 2021 à 22:53
je pense avoir compris ce qui ce passe

j ai des nombres du style
6
96
145
89
5
8
et donc il interprète cela de cette manière a première vue
600
960
145
890
500
800

j ai donc du mettre le type sur int(255)

mais j ai un autre soucis la ligne affichée ne reprends pas la ligne entière correspondant au total max
mais me retourne la première ligne du tableau accompagnée du total le plus élevé
et ce que je désire c est avoir la ligne complète du total le plus élevé
0
jordane45 Messages postés 38326 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 2 décembre 2024 4 712
1 sept. 2021 à 23:00
Si ce sont des nombres .. en effet il ne faut pas les stocker dans un champ de type texte ..
Pour ce qui est de la valeur du int ... 255 ça fait beaucoup ...

Ce souci étant traité ... je t'invite à clore cette discussion et à en ouvrir une autre pour ton nouveau problème ( à poster dans le forum Mysql .. puisque ça concerne la requête sql et non le code php )
0
flexi2202 Messages postés 3801 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 octobre 2024 187
1 sept. 2021 à 23:07
j ai trouve la solution c est magique

SELECT `id`, `pseudo`, `total`
FROM   `pecheurs_perle`
ORDER BY `total` DESC
LIMIT 3
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
flexi2202 Messages postés 3801 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 octobre 2024 187
1 sept. 2021 à 23:08
ah mince désolé jordane
nos messages se sont croises ...
0
jordane45 Messages postés 38326 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 2 décembre 2024 4 712
1 sept. 2021 à 23:45
N'oublie pas de clôturer la discussion
0