Page 1 sur 1

GROUP BY

Posté : 16 mars 2007, 23:06
par dunbar
bonsoir,

Avec un GROUP BY j'arrive à faire un trie dans une table je trie tout les villes,
Donc je me retrouve avec des villes :
exemple
Bruxelles, Bierge, etc..
comment faire pour lui dire de prendre tout les enregistrements de Bierge par exemple ?

Posté : 16 mars 2007, 23:56
par @rthur
Bonjour,

Bah avec WHERE ville="Bierge", ça suffit non?

Si non alors donne nous un exemple ou reformule ta question stp :)

Posté : 17 mars 2007, 00:31
par Invité
Bonjour,

Bah avec WHERE ville="Bierge", ça suffit non?

Si non alors donne nous un exemple ou reformule ta question stp :)
Oui sorry j'ai encore poser une question comme un .........
J'ai une table avec +/- 2500 encodages il y a un ville par encodage et je souhaite afficher page par page les données par ville .

Posté : 17 mars 2007, 02:01
par Ryle
Pour trier tes enregistrements, c'est ORDER BY qu'il faut utiliser.
GROUP BY va les regrouper :

Code : Tout sélectionner

SELECT ville, ... FROM ... ORDER BY ville
Permet de sortir une liste non distincte des villes, triée par ordre alphabétique

Code : Tout sélectionner

SELECT ville, COUNT(*) FROM ... GROUP BY ville
Permet de sortir une liste distincte des villes (sans doublons) et le nombre d'enregistrements qui leurs sont associées

Posté : 18 mars 2007, 12:55
par dunbar
Pour trier tes enregistrements, c'est ORDER BY qu'il faut utiliser.
GROUP BY va les regrouper :

Code : Tout sélectionner

SELECT ville, ... FROM ... ORDER BY ville
Permet de sortir une liste non distincte des villes, triée par ordre alphabétique

Code : Tout sélectionner

SELECT ville, COUNT(*) FROM ... GROUP BY ville
Permet de sortir une liste distincte des villes (sans doublons) et le nombre d'enregistrements qui leurs sont associées
Bon alors voilà
J'essaye de sortir une $variable par commune avec un array
comme ceci
$commune_list = array($commune);
sort ($commune_list);
foreach ($commune_list as $key => $val) {
   echo "[".$key."] = ".$val."\n";
il me donne bien les différentes commune comme ceci
[0] = Arlon [0] = Athus [0] = Aubange [0] = Aye [0] = Bastogne [0] = Bertix [0] = Bertrix
Pourquoi tout est à ZERO et pas [0], [1], [2] etc ?
Je signale que le but de la manoeuvre est de créer un affichage dans un TABLEAU par commune.
Une page par commune.

D'avance merci

Posté : 18 mars 2007, 14:23
par Cyrano
Modération :
Afin d'obtenir plus de réponses, le sujet est déplacé dans le forum "SQL & Bases de données".

Merci de prendre le temps de lire les règlements
ainsi que l'intitulé de chaque forum avant de poster un nouveau sujet.

Posté : 18 mars 2007, 14:32
par dunbar
Bonjour,

Alors voilà j'ai créer un Array j'arrive à faire les tries que je souhaite, mais je ne sais pas comment faire pour afficher par exemple une page par trie:
Exemple je trie (ORDER BY) par commune et je souhaite afficher les commune page par page comment je peu faire cela ?
Voici mon code.
$sql = "SELECT
                           IDot,
                           ref_client,
                           commune,
                           nom_client,
                           adr_client,
                           adr_modem,
                           technicien,
                           date_encodage,
                           code_postal
                           FROM prestation
                           WHERE YEAR(date) = YEAR(CURDATE()) AND MONTH(date) = MONTH(CURDATE())
                           ORDER BY commune
                           ";


                          $result = mysql_query($sql);
                          if (!$result) {
                          echo "Impossible d'exécuter la requête ($sql) dans la base : " . mysql_error();
                          exit;}

                          if (mysql_num_rows($result) == 0) {
                          echo "Rien à afficher.";
                          exit;}


   while ($row = mysql_fetch_assoc($result)) {


   extract($row,EXTR_OVERWRITE);



              $fac_mois    = array ("commune"     => $commune,
                                    "Nom"         => $nom_client,
                                    "Adresse"     => $adr_client,
                                    "cd_postal"   => $code_postal,
                                    "Référence"   => $ref_client,
                                    "Modem"       => $adr_modem,
                                    "Technicien"  => $technicien,
                                    "Date"        => $date_encodage,
                                   );





   echo '<pre>';
   print_r($fac_mois);
   echo '</pre>';


}




mysql_free_result($result);
D'avance merci