PHP - Trier par nombres d'entrées (de lignes)
LelLex
Messages postés
1628
Date d'inscription
Statut
Membre
Dernière intervention
-
Garth -
Garth -
Bonjour à tous,
J'aimerais, avec PHP / MySQL, savoir quels sont les éléments ayant le plus d'entrées dans ma table.
Par exemple, j'ai une table de 1000 lignes avec toujours les mêmes 10 "id". Donc l' "id 1" a 100 lignes, le deuxième en a 50, etc... (Pour faire simple, ces "id" n'ont pas le même nombres de lignes / d'entrées)
Je sais compter le nombre d'entrées en PDO :
Seulement, je n'arrive pas à faire quelque chose comme :
Sélectionne les 4 IDs ayant le plus de lignes / d'entrées
Voilà ce que je cherche à faire ? Des solutions ?
Cordialement.
J'aimerais, avec PHP / MySQL, savoir quels sont les éléments ayant le plus d'entrées dans ma table.
Par exemple, j'ai une table de 1000 lignes avec toujours les mêmes 10 "id". Donc l' "id 1" a 100 lignes, le deuxième en a 50, etc... (Pour faire simple, ces "id" n'ont pas le même nombres de lignes / d'entrées)
Je sais compter le nombre d'entrées en PDO :
$req = $db -> query('SELECT COUNT(*) FROM table WHERE id=\'1\''); $result = $req -> fetchColumn(); $req -> closeCursor();
Seulement, je n'arrive pas à faire quelque chose comme :
Sélectionne les 4 IDs ayant le plus de lignes / d'entrées
Voilà ce que je cherche à faire ? Des solutions ?
Cordialement.
A voir également:
- PHP - Trier par nombres d'entrées (de lignes)
- Excel trier par ordre croissant chiffre - Guide
- Partage de photos en ligne - Guide
- Logiciel pour trier les photos automatiquement - Guide
- Nombre de jours entre deux dates excel - Guide
- Afficher toutes les lignes masquées excel ✓ - Forum Excel
1 réponse
Salut,
les mêmes 10 "id"
Si votre champ id est l'identifiant(clé primaire) la table est fausse. En effet comment faites vous la différence entre 2 lignes qui ont pour id la valeur 1?
Soit c'est une clé étrangère et donc l'identifiant naturel est multiple :composé de l'identifiant naturel et de la clé étrangère soit le champ id n'est pas la clé primaire tout court et il vous faudra utiliser la clé primaire dans ce cas.
Pour votre requête avez vous entendu parler de la fonction MAX? Elle peut se combiner avec COUNT et vous pouvez imbriquer des requêtes les unes dans les autres(sous-requêtes) ainsi quue faire des requêtes sur plusieurs tables(jointures)...
Ce lien peut vous être utile:
http://sql.toutestfacile.com/maitriser_les_bases_de_donnees/premieres_requetes_sql_1.php5
Sinon rien ne vous empêche de faire plusieurs requêtes et de comparer(tester) les résultats en php si vous êtes plus à l'aise avec le php(SQL étant un langage de très bas niveau ça serait étrange, mais bon). L'opérateur logique est le même dans les 2 langages:
Supérieur à s'écrit comme ceci " >" dans une boucle conditionnelle. "<" est son équivalent contraire(inférieur à".
Bon je suit sympa aujourd'hui, essayez ceci:
SELECT MAX COUNT(*) FROM table GROUP BY 'id'
Pas testé mais littéralement ça devrait signifier:
Sélectionne(je suit intime avec le serveur je le tutoie) le compte maximum des groupe de 'id'
Mégateuf!
les mêmes 10 "id"
Si votre champ id est l'identifiant(clé primaire) la table est fausse. En effet comment faites vous la différence entre 2 lignes qui ont pour id la valeur 1?
Soit c'est une clé étrangère et donc l'identifiant naturel est multiple :composé de l'identifiant naturel et de la clé étrangère soit le champ id n'est pas la clé primaire tout court et il vous faudra utiliser la clé primaire dans ce cas.
Pour votre requête avez vous entendu parler de la fonction MAX? Elle peut se combiner avec COUNT et vous pouvez imbriquer des requêtes les unes dans les autres(sous-requêtes) ainsi quue faire des requêtes sur plusieurs tables(jointures)...
Ce lien peut vous être utile:
http://sql.toutestfacile.com/maitriser_les_bases_de_donnees/premieres_requetes_sql_1.php5
Sinon rien ne vous empêche de faire plusieurs requêtes et de comparer(tester) les résultats en php si vous êtes plus à l'aise avec le php(SQL étant un langage de très bas niveau ça serait étrange, mais bon). L'opérateur logique est le même dans les 2 langages:
Supérieur à s'écrit comme ceci " >" dans une boucle conditionnelle. "<" est son équivalent contraire(inférieur à".
Bon je suit sympa aujourd'hui, essayez ceci:
SELECT MAX COUNT(*) FROM table GROUP BY 'id'
Pas testé mais littéralement ça devrait signifier:
Sélectionne(je suit intime avec le serveur je le tutoie) le compte maximum des groupe de 'id'
Mégateuf!
Si ce nom vous gêne, appelons-le "P" ; donc nous avons "P1, P2, ..., P10"
soit le champ id n'est pas la clé primaire tout court et il vous faudra utiliser la clé primaire dans ce cas.
Sinon ça donne quoi ça?
SELECT MAX COUNT(ID) FROM table GROUP BY 'P'
ID étant la clé primaire.