IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Procédural MySQL Discussion :

Problème requete : groupby


Sujet :

SQL Procédural MySQL

  1. #1
    Membre confirmé Avatar de heteroclite
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 147
    Par défaut Problème requete : groupby
    Bonjour,

    Je voudrais dans mon espace administration compter le nombre de comptes crées par jour.

    j'ai donc fait une requête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    // on crée la requête SQL comptes par jour
     
    $query = "SELECT date_reg,COUNT(*) FROM membres GROUP BY date_reg ";
     
     
    $result = mysql_query($query) or die($query . ' - ' . mysql_error());
     
    echo '<table><tr><th bgcolor="#FFBBFF" colspan="2">Comptes crées par jour; </th></tr>' . "\n";
    while ($ligne = mysql_fetch_array($result)) {
      echo '<tr><td align="center" bgcolor="#E8E8E8">' . $ligne[0] . '</td>
    		<td align="center">' . $ligne[1] . '</td></tr>' . "\n";
    }
    echo '</table>' . "\n";
    le probleme est que mon groupby n'est pas pertinent car le format de date est : 13/09/06 12:29:11.....donc j'ai une ligne par enregistrement à la fin

    comment faire pour que le groupby ne se fasse que sur la date (9 premiers caactères) .....fonction left ????
    une idée ?

    merci !

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    319
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 319
    Par défaut
    GROUP BY DATE(date_reg)

    tout simplement !

  3. #3
    Membre confirmé Avatar de heteroclite
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 147
    Par défaut
    merci ....j'ai maintenant un petit probleme de classement chronologique...
    c'est classé comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    01/10/06 00:06:02 14 
    02/10/06 01:04:44 33 
    13/09/06 12:26:07 1 
    14/09/06 11:05:42 1 
    17/09/06 01:51:51 3 
    18/09/06 08:42:04 4
    ma requete:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $query = "SELECT date_reg,COUNT(*) FROM membres GROUP BY DATE(date_reg) ORDER BY date_reg ASC ";

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 147
    Par défaut
    Perso, dans ma base de données, mes dates sont au format américain. Ce qui rend plus simple pour faire les ORDER BY.

    Voici les fonctions PHP que j'utilise ensuite pour convertir les dates. S'il y a des gens qui voient des améliorations à faire, je suis preneur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    function US2FR($date){
     
    	$partie = explode(" ",$date);
     
    	$data = explode("-",$partie[0]);
     
    	$FR = $data[2]."/".$data[1]."/".$data[0]." ".$partie[1]; 
     
    	return $FR;
     
    }
     
     
     
    function FR2US($date){
     
    	$partie = explode(" ",$date);
     
    	$data = explode("/",$partie[0]);
     
    	$US = $data[2]."-".$data[1]."-".$data[0]." ".$partie[1]; 
     
      return $US;
     
    }

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 140
    Par défaut
    Bonjour,

    Citation Envoyé par heteroclite
    ma requete:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $query = "SELECT date_reg,COUNT(*) FROM membres GROUP BY DATE(date_reg) ORDER BY date_reg ASC ";
    Pour que ton select soit correct, il ne faut plus utiliser adte_reg mais DATE(date_reg)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT DATE(date_reg),COUNT(*) FROM membres GROUP BY DATE(date_reg) ORDER BY DATE(date_reg) ASC

  6. #6
    Membre confirmé Avatar de heteroclite
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 147
    Par défaut
    merci et une derniere petite question comment fait on pour afficher un message lorsque la requete ne renvoit aucun enregistrement ?

    merci !

  7. #7
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    319
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 319
    Par défaut
    ben ca c'est en PHP

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $query = 'blabla';
    $res = mysql_query($query);
     
    if($row = mysql_fetch_assoc($res))
    {
    // il y a des lignes (au moins une)
    }
    else
    {
    // il n'y a pas de ligne
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème requete asp
    Par bichonjp dans le forum ASP
    Réponses: 5
    Dernier message: 08/09/2005, 12h05
  2. Problème requete update
    Par krfa1 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 29/03/2005, 08h47
  3. Problème requete SQL
    Par tonyskn dans le forum Langage SQL
    Réponses: 3
    Dernier message: 14/11/2004, 20h37
  4. problème requete sql
    Par Fred- dans le forum ASP
    Réponses: 2
    Dernier message: 13/06/2004, 02h20
  5. Problème Requete SQL et QuickReport
    Par arnaud_verlaine dans le forum C++Builder
    Réponses: 7
    Dernier message: 07/01/2004, 09h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo