PHP : requete SQL

Résolu/Fermé
dimitri93 Messages postés 5 Date d'inscription lundi 3 septembre 2007 Statut Membre Dernière intervention 4 septembre 2007 - 3 sept. 2007 à 12:32
 Jacques - 11 sept. 2007 à 13:56
Bonjour à tous.

Je travaille actuellement sur un site dynamique de messages et une requete me pose problème.
Le principe du site est le suivant : L'internaute poste un message en entrant des informations personelles et notamment son département.
Toutes ces infos vont s'écrire dans la BDD pour etre consultable par la suite.
Jusque là, rien de compliqué sauf que sur une des pages, je veux faire apparaitre le classement des départements ayant le plus participé et je sais pas comment m'y prendre.

J'espere que j'aurai été assez clair, merci d'avance pour votre aide.
A voir également:

10 réponses

rrrrrradaaaaaayyyy
3 sept. 2007 à 13:19
j aimerai savoir bc plus pou vous aider
radovan_15@hotmail.fr
0
dimitri93 Messages postés 5 Date d'inscription lundi 3 septembre 2007 Statut Membre Dernière intervention 4 septembre 2007
3 sept. 2007 à 13:32
OK, j'ai créé une table qui contient le champ département.
A chaque création de message, le département de l'internaute ajoute une entrée dans ce champ.
Est-il possible recupérer via une requete SQL le nombre d'entrée de chaque département afin de pouvoir établir un classement.
Peut etre va-t-il falloir que je créé paralellement une autre table avec un champs pour chaque departement. Jvois pas d'autres solutions...
En tout cas, merci pour tout.
0
Bonjour,

Classiquement la fréquentation par ordre dégressif peut se mesurer comme suit :

SELECT <Table>.<champ département>, Count(<Table>.<champ département>, ) AS Nbre
FROM <Table>
GROUP BY <Table>.<champ département>,
ORDER BY Count(<Table>.<champ département>) DESC;

Cordialement
Nb : Requête non testée

La science ne fait que trouver ce qui existe depuis toujours.
REEVES Hubert.
0
j'ai une seule machine mais je veux utiliser sql serveur2000. quand je crée les tables en allant vers l'access à partir de la création ça me complique alrs que faire?
0

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

Posez votre question
dimitri93 Messages postés 5 Date d'inscription lundi 3 septembre 2007 Statut Membre Dernière intervention 4 septembre 2007
3 sept. 2007 à 22:11
Salut jacques, merci de t'interesser à mon problème.
En fait si tu pouvais me donner la syntaxe complete (genre avec mysql_query(...) etc) avec un ptit tableau pour afficher le resultat ce serai encore mieux.
La table s'appele "messages" et le champ "dep".
Désolé d'insister autant mais je suis un débutant en la matière alors je rame un peu.
Merci d'avance.
0
dimitri93 Messages postés 5 Date d'inscription lundi 3 septembre 2007 Statut Membre Dernière intervention 4 septembre 2007
3 sept. 2007 à 23:18
En fait jcroi avoir capter le truc mai j'arrive pas à afficher le résultat.
ca doit etre un truc comme ca :

$search = mysql_query('SELECT messages.dep COUNT(messages.dep) AS nombre FROM messages GROUP BY messages.dep ORDER BY COUNT(messages.dep) DESC');
$row = mysql_fetch_array($search);

Comment afficher le résultat de cette requette???
PLEASE HEEEEEEELP.
0
dimitri93 Messages postés 5 Date d'inscription lundi 3 septembre 2007 Statut Membre Dernière intervention 4 septembre 2007
4 sept. 2007 à 00:34
C bon g réussi...
Merci jacques il manquait juste le "DISTINCT" apres le "SELECT".

Bonne nuit a tous!!!
0
Bonjour Dimitri93,

Ce matin, je découvre tes précédents messages successifs.
Superbe, je n'ai plus rien à faire ! Tu poses les questions et trouves les réponses !
Excellents débuts
Bienvenue dans le monde SQL


La science ne fait que trouver ce qui existe depuis toujours.
REEVES Hubert.
0
Bonjour le forum,

j'ai une BDD qui contient parmis les champs un nommé "cp" (Code postal)

Je souhaiterai affiché la somme des lignes dans ma bdd par Code postal et ordonner les résultat soit en decroissant soit en croissant.

Mon début de code est :


Code :
for ($i=1; $i<=96; $i++)
{
$dept = mysql_query("SELECT COUNT(*) FROM demandes where cp ='$i'");
$rdept = mysql_fetch_row($dept);
$tdept = $rdept[0] + 0;
echo "$i ($tdept)<br>";
}et paradoxalement c'est le tri qui devrait etre le plus facile a coder et pourtant ca ne fonctionne pas avec un order car un order ne me trirait pas en fonction du resultat COUNT mais en fonction de la variable champ.

Enfin pareil avec la limit d'affichage que je souhaiterai a 50 puis le second tableau a 50, 50, mais comment faire puisque le tri doit se faire en fonction du resultat...

PS : j''ai essayé avec :
$dept = mysql_query("SELECT cp, COUNT(*) as NbParCp FROM demandes GROUP BY cp ORDER BY cp ASC");

mais le while ne me retourne aucn resultat.

Merci a tous pour votre patience.
0
Bonjour,

Voilà une solution à tester :


SELECT DISTINCT Count(<Table_1>.<Champ_1>) AS Nbre, <Table_1>.<Champ_1>
FROM <Table_1>
GROUP BY <Table_1>.<Champ_1>
ORDER BY Count(<Table_1>.<Champ_1>);

Bonne journée
La science ne fait que trouver ce qui existe depuis toujours.
REEVES Hubert.
0