Tri et compte sur un champ donné

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Tri et compte sur un champ donné

par Truc » 05 nov. 2007, 16:51

Modération :
Puisque ta question est résolue, j'ajoute le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.

Tu peux réaliser cette opération toi-même
en cliquant sur le bouton Image qui s'affiche en haut à gauche de ce sujet
si tu as posté le 1er message en tant que membre (inscrit et identifié).

Alors... inscris-toi !!! ;)

par Noubinours » 05 nov. 2007, 16:44

Bien vu il y a eu un changement pendant mon absence et donc du coup j'avais pas vu que mon binôme avait changé le nom commun donc j'ai modifié et j'ai enfin un résultat, un autre changement sur le group by et le tour est joué ! Merci à vous et en particulier à toi Truc ;)

ENFIN RESOLUUUU :)

Noubinours

par Truc » 05 nov. 2007, 16:29

Poste le schéma de tes tables sous forme de "CREATE table ...."

Tu as bien un "id_joueur" dans les tables concours et joueurs ?

par Noubinours » 05 nov. 2007, 16:23

Re et merci,

En mettant les alias, ca me met :
#1054 - Unknown column ''mgworld.c.id_joueur' in 'on clause' (mgworld est le nom de la base)

Vous savez pourquoi ???

Noubi'

par Truc » 05 nov. 2007, 16:13

Et toujours le même message d'erreur ?

"concours" doit être remplacé par son alias "c" ou ne pas créer d'alias.

par Noubinours » 05 nov. 2007, 15:59

Bonjour,

Me voilà de retour après quelques jours d'absence informatique.

Non non, il n'y a rien de top secret :)

Ci-dessous la requête repiquée et adaptée :

Code : Tout sélectionner

SELECT concours.id_concours, ville.nom_ville, COUNT(concours.id_joueur) as nb FROM concours c JOIN joueurs j USING (id_joueur) JOIN ville v ON j.id_ville = v.id_ville GROUP BY c.id_concours, v.id_ville ORDER BY c.id_concours
Je ne crois pas m'être trompé.

Merci de votre aide.

Noubinours

par Ryle » 29 oct. 2007, 17:24

Et on peut voir la requête modifiée qui génère ce message pour éventuellement te dire ce qui ne va pas dedans ou c'est top secret ? ;)

par noubinours » 29 oct. 2007, 17:19

De nouveau moi Truc,

Ca me met l'erreur suivante :

#1054 - Unknown column 'mgworld.c.id_joueur' in 'on clause'. (mgworld est le nom de la base)

Ce problème commence à me rendre dingue alors que ca me parrait pourtant pas bien sorcier :'(

noubinours

par Truc » 29 oct. 2007, 16:12

La requête reste la même tu dois juste l'adapter à tes champs sans oublier les alias

par noubinours » 29 oct. 2007, 15:29

C'est pas grave reprenons plus simplement les champs qui nous intéressent.

table concours (id_concours, joueur_concours //clef étrangère id de la table joueur)

table joueur (id_joueur, prenom_joueur, nom_joueur, ville_joueur //clef étrangère id de la table ville)

table ville (id_ville, nom_ville // RAS, complète)

A la fin, on veut savoir par rapport aux joueurs qui ont joué ou pas au dernier concours, d'où ils proviennent et on répertorie ainsi les x parisiens, les y lyonnais et les z marseillais.

C'est mieux comme explication ?

noubinours

par Truc » 29 oct. 2007, 14:21

Et tu as repris la même requete ?

Le message dis qu'il n'y a pas de table "c" or il y a bien un alias de définis "FROM concours c"

EDIT : enfaite je me rends compte que tu n'as pas donné les vrais nom de champs d'où l'interet de suivre les conseils "poster le schéma des tables pertinentes à votre requête sous la forme d'une instruction "CREATE TABLE""

par Invité » 29 oct. 2007, 14:18

Hé bien ca me marque :

#1109 - Unknown table 'c' in field list

:(

par Truc » 29 oct. 2007, 14:04

Ce n'est pas un script ce que j'ai proposé mais une requête que tu peux tester directement dans phpmyadmin ou autre.
Vérifie le résultat s'il correspond à ce que tu attendais ou non.

par Noubinours » 29 oct. 2007, 13:51

J'ai essayé ton script sans tout comprendre lol, car moi c'est plutôt ça mon script, le vrai :
$query = "SELECT * FROM ville,concours,joueur WHERE concours.id_joueur = joueur.id_joueur AND joueur.id_ville = ville.id_ville GROUP BY ville.nom_ville"; 
$result = mysql_query($query); 
while ($row = mysql_fetch_array($result)){ 
$parville = $row["id_ville"]; 
$query2 = "SELECT * FROM ville,concours,joueur WHERE concours.id_joueur = joueur.id_joueur AND joueur.id_ville = ville.id_ville  AND ville.id_ville = $parville GROUP BY ville.id_ville ORDER BY ville.nom_ville"; 
$result2 = mysql_query($query2); 
$parville = mysql_num_rows($result2); 
echo $row["nom_ville"]." : ".$parville."<br />"; 
} 
mais les 2 ne fonctionnent pas :/

Qu'est-ce qui cloche Truc ?

Noub

par Truc » 29 oct. 2007, 12:27

Essaie avec:

Code : Tout sélectionner

SELECT c.id_c, v.nom_v, COUNT(c.id_j) as nb FROM concours c JOIN joueurs j USING (id_j) JOIN ville v ON j.id_vj = v.id_v GROUP BY c.id_c, v.id_v ORDER BY c.id_c