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

Langage PHP Discussion :

Compter le nombre d'entrée avec condition


Sujet :

Langage PHP

  1. #1
    Membre actif
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2007
    Messages
    290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Avril 2007
    Messages : 290
    Points : 209
    Points
    209
    Par défaut Compter le nombre d'entrée avec condition
    Bonsoir,

    Je souhaiterai compter le nombre de date dans ma base de données qui correspond a un numero de semaine donné.

    Par exemple :
    "Dans le champ date combien il y a de date qui correspondent a la semaine 7" Sachant que les dates sont sous la forme jjmmaaaa.

    J'ai donc ma fonction qui vérifie le numéro de semaine
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      //FONCTION NUMERO SEMAINE POUR V2RIFIER, PLUS BAS ,LE NOMBRE DE RENDEZS-VOUS PAR SEMAINES
    		  function NumeroSemaine ($sDate) { 
             $sEngDate = substr ($sDate, -4).substr ($sDate, 2, 2).substr ($sDate, 0, 2);
             $iTime = strtotime ($sEngDate);
               return date('W',$iTime);}
    J'ai essayé cette solution (en vain bien sur)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    		  $nrb_rdv_sem = 0 ;
    		  $requete0 = mysql_query("SELECT date FROM woof_agenda  ")or die(mysql_error());
    		  while($retour0  = mysql_fetch_array($requete0)) 
    			{
     
    				for($i=0 ; $semaine == NumeroSemaine($retour0['date']) ;$i++)
    				{
    		      $nrb_rdv_sem = $i++ ;
    			   }
    echo $nrb_rdv_sem;
    			}
    Pouvez vous me corriger s'il vous plait ? Merci d'avance :s

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Bonjour,

    Pourquoi ne pas utiliser un champ date ?
    Ca te faciliterait vraiment ce genre d'operation.

  3. #3
    Membre actif
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2007
    Messages
    290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Avril 2007
    Messages : 290
    Points : 209
    Points
    209
    Par défaut
    Le champ date existe déja et les entrées sont sous la forme jjmmaaaa.

    Mon premier post

  4. #4
    Membre averti Avatar de Huntress
    Femme Profil pro
    Inscrit en
    Août 2004
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 475
    Points : 402
    Points
    402
    Par défaut
    Bonsoir,

    Je ne comprends pas bien le for que tu as dans ton while... est-ce que tu ne voulais pas plutôt mettre un if ? Style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if($semaine == NumeroSemaine($retour0['date']))
        $nrb_rdv_sem++;

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Points : 1 357
    Points
    1 357
    Par défaut
    Bonjour,

    Citation Envoyé par Seta-san Voir le message
    Le champ date existe déja et les entrées sont sous la forme jjmmaaaa.
    Ce que Sabotage veut dire est qu'une colonne de type date est au format 'YYYY-MM-DD'. Dans ce cas, cette seule requête est suffisante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
      $numSemaine = '04';
     
      $sql = 'SELECT COUNT(*) AS nb
              FROM woof_agenda
              WHERE DATE_FORMAT(date, \'%v\') = ' . $numSemaine;
    ?>
    D'autre part, ce n'est pas une bonne idée que d'appeler une colonne 'date', car cela correspond à un type de colonne.

  6. #6
    Membre actif
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2007
    Messages
    290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Avril 2007
    Messages : 290
    Points : 209
    Points
    209
    Par défaut
    J'ai finalement fait d'une autre manière.
    J'ai crée un nouveau champ nommé "semaine" qui est rempli a la validation d'un formulaire. je compte bêtement, ensuite, avec ma requête.

    Merci a vous en tout cas

Discussions similaires

  1. Compter le nombre de champs avec condition
    Par 73brunette73 dans le forum IHM
    Réponses: 3
    Dernier message: 31/05/2010, 06h27
  2. Réponses: 7
    Dernier message: 19/09/2009, 00h05
  3. [MySQL] Compter le nombre d'entrées dans une colonne
    Par gastoncs dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 25/07/2009, 22h09
  4. Compter le nombre d'entrées dans une BDD avec condition
    Par iFlo1 dans le forum Général Dotnet
    Réponses: 2
    Dernier message: 29/03/2009, 21h33
  5. Compter un nombre d'entré
    Par Nadd dans le forum Langage
    Réponses: 8
    Dernier message: 11/04/2006, 19h07

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