GROUP BY

ViPHP
ViPHP | 2291 Messages

16 mars 2007, 23:06

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 ?
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

16 mars 2007, 23:56

Bonjour,

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

Si non alors donne nous un exemple ou reformule ta question stp :)
Quand tout le reste a échoué, lisez le mode d'emploi...

Invité
Invité n'ayant pas de compte PHPfrance

17 mars 2007, 00:31

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 .

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

17 mars 2007, 02:01

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
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

ViPHP
ViPHP | 2291 Messages

18 mars 2007, 12:55

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
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Mammouth du PHP | 19672 Messages

18 mars 2007, 14:23

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.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

ViPHP
ViPHP | 2291 Messages

18 mars 2007, 14:32

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
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.