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

PHP & Base de données Discussion :

script moyenne date


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 34
    Par défaut script moyenne date
    Bonjour je revient vers vous car je n arrive pas a faire mon scripte qui calcule moyenne de nombre de jour entre date de demande et la date de remise du dossier .

    je voudrais utiliser AVG(DATEDIFF(date_de_demande, date_de_remise))

    je ca ne fonctionne pas mysql me retourne qu'il ne faut qu'un seul paramètre.

  2. #2
    Membre émérite Avatar de Atomya Rise
    Femme Profil pro
    Développeuse Web
    Inscrit en
    Février 2009
    Messages
    443
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeuse Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2009
    Messages : 443
    Par défaut
    Après quelques petites recherches sur le forum, je pense qu'il ne faut utiliser que le paramètre DATEDIFF et enlever le paramètre AVG.

    Essaye de faire un petit tour sur ce topic histoire de voir si cela pourrais éventuellement t'aider...

    http://www.developpez.net/forums/d86...obleme-format/

    En espérant que cela puisse t'aider !

  3. #3
    Membre Expert
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Par défaut
    i respectfully dissent

    la structure AVG(DATEDIFF( :date1 , :date2 ) ) me parait correcte dans un context group by (implicite ou non), sans plus de vérification. Est-ce qu'on peut voir l'intégralité du message d'erreur et de la requete?

    EDIT ajoute group by

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 34
    Par défaut
    J ai écris un script pour effectuer la moyenne ,je voudrais votre avis

    (fonction utilisée)
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    <?php
    /*                                                                            */
    /* Titre          : Calcul la différence de jour entre 2 dates                */
     
    // NbJours("2000-10-20", "2000-10-21") retourne 2
     
    function NbJours($debut, $fin) {
     
      $tDeb = explode("-", $debut);
      $tFin = explode("-", $fin);
     
      $diff = mktime(0, 0, 0, $tFin[1], $tFin[2], $tFin[0]) - 
              mktime(0, 0, 0, $tDeb[1], $tDeb[2], $tDeb[0]);
     
      return(($diff / 86400)+1);
     
    }
     
    // Comment apeler la fonction
    //$Nombres_jours =  NbJours("2000-10-20", "2000-10-21");
    // Affiche 2
    //echo $Nombres_jours;
     
    ?> 
     
     
     
     
    script calcule moyenne 
     
    //Select Moyenne date de demande
     
    $req = mysql_query("SELECT Date_de_demande,Date_de_réponse FROM dossier_tbl where service='$service'");
     
    while( $ligne = mysql_fetch_array($req)){
     
        $debut = $ligne['Date_de_demande'] ;
     
        $fin = $ligne['Date_de_réponse'] ;
     
        if ($fin != '0000-00-00') {
            $Nombres_jours = NbJours($debut, $fin);
            $temp_nbjours = $Nombres_jours;
            $calcule = $temp_nbjours+$calcule;
            $nombres_dates++ ;
        }
     
    }
    $moyenne = $calcule/$nombres_dates;

  5. #5
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    Citation Envoyé par waltcap Voir le message
    je voudrais utiliser AVG(DATEDIFF(date_de_demande, date_de_remise))
    Cette fonction marche chez moi. Montre nous ta requete complète stp

  6. #6
    Membre émérite Avatar de Atomya Rise
    Femme Profil pro
    Développeuse Web
    Inscrit en
    Février 2009
    Messages
    443
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeuse Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2009
    Messages : 443
    Par défaut
    Merci d'utiliser les balises code afin de citer ton code, cela sera bien plus lisible pour nous

    pourquoi ne traites-tu pas la différence entre tes dates directement dans ta requête comme ceci :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $req = mysql_query("SELECT DATEDIFF(Date_de_réponse, Date_de_demande) FROM dossier_tbl where service='$service'");

    tu aurais directement la différence entre tes deux dates...

  7. #7
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    Il veut la moyenne des différences des dates, pas les différences des dates

    Sa première requête :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    AVG(DATEDIFF(date_de_demande, date_de_remise))

    est bonne, le problème se situe donc dans la partie de la requête qu'il ne nous fournit pas

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 34
    Par défaut
    je voudrais calculer la moyenne du nombre de jour entre la date de demande et la date de remise du dossier.

    j ai utiliser la requête suivante comme vous me l avait conseiller



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $req = mysql_query("SELECT DATEDIFF(Date_de_réponse, Date_de_demande) FROM dossier_tbl where service='$service'");

    il me renvoie
    Resource id #7

    dite moi ce que vous voulez savoir ,ce qu'il vous manque

  9. #9
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    Pour les requêtes du type SELECT, SHOW, DESCRIBE, EXPLAIN et les autres requêtes retournant un jeu de résultats, mysql_query() retournera une ressource en cas de succès, ou FALSE en cas d'erreur.
    ta variable $req est en fait un jeu de résultat, tu peux pas faire un echo dessus, il faut que tu l'exploites comme ca par exemple :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $req = mysql_query("SELECT DATEDIFF(Date_de_réponse, Date_de_demande)  FROM dossier_tbl where service='$service'");
     
    while($row = mysql_fetch_array($req))
       echo $row[0] . '<br />';

Discussions similaires

  1. [MySQL] date et moyenne date
    Par waltcap dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 25/10/2010, 23h10
  2. Déclencher un script à une date précise
    Par sebac dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 29/09/2010, 21h32
  3. Script Modif date systeme à J+1
    Par teknokiki dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 20/05/2010, 14h17
  4. [Shell Script] Récupérer date de modif et touch
    Par lavazavio dans le forum BSD
    Réponses: 2
    Dernier message: 26/11/2008, 17h10
  5. Executer un script à une date précise.
    Par bobchovit dans le forum VBScript
    Réponses: 2
    Dernier message: 12/11/2007, 09h56

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