GROUP BY

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 : GROUP BY

par dunbar » 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

par Cyrano » 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.

par dunbar » 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

par Ryle » 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

par Invité » 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 .

par @rthur » 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 :)

GROUP BY

par dunbar » 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 ?