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 :

ADDTIME pour un champ specifique dans une boucle while [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre habitué
    Inscrit en
    Septembre 2007
    Messages
    199
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 199
    Points : 148
    Points
    148
    Par défaut ADDTIME pour un champ specifique dans une boucle while
    Bonjour,

    alors voila le topo :
    Je recupere toutes les donnees pour un projet specifique (user, time spent each day, etc...)
    Le but est de savoir combien d´heures ca fait au cumule.
    donc il faudrait additionner toutes les heures du champ time spent.

    erreur reportee :
    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\wamp\www\SG\infoproject.php on line 77
    Et le code bien sur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    //get all the data for a specific project and all user
    $answer6 = mysql_query("SELECT * FROM work WHERE task='".$_POST['task']."'");
     
    //get total time spent for a  project
    $req = "";
    while ($data6 = mysql_fetch_array($answer6) )
    	{
    		$req = mysql_query("SELECT ADDTIME ('" .$req. "', '".$answer6[time_spent]. "' ");
    		$total_hours = mysql_fetch_array($req);
    		echo $total_hours[0];
    	}

  2. #2
    Membre actif Avatar de BlackSmith
    Inscrit en
    Mars 2008
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Mars 2008
    Messages : 181
    Points : 207
    Points
    207
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $req = mysql_query("SELECT ADDTIME ('" .$req. "', '".$answer6[time_spent]. "' ");
    L'erreur vient du faite que tu réutilise $req

  3. #3
    Membre habitué
    Inscrit en
    Septembre 2007
    Messages
    199
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 199
    Points : 148
    Points
    148
    Par défaut
    Oai je suis ok BlackSmih, mais c´est le but de la boucle while...
    Je pense qu´on peut appeler ca une recursion.

    Donc je vois pas ou est l´erreur d´algo.
    J´imagine que c´est une erreur purement sql.

    Merci en tout cas.

  4. #4
    Membre actif Avatar de BlackSmith
    Inscrit en
    Mars 2008
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Mars 2008
    Messages : 181
    Points : 207
    Points
    207
    Par défaut
    pourquoi ne fait tu pas simplement un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT SUM(*) FROM work WHERE task='...'

  5. #5
    Membre éprouvé Avatar de obito
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 773
    Points : 948
    Points
    948
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $req = mysql_query("SELECT ADDTIME ('" .$req. "', '".$data6['time_spent']. "' ");

    Ca viendrais pas tout simplement de $data6['time_spent'] car y avait pas de 'time_spent' avant
    ►Ne pas oublier le

  6. #6
    Membre habitué
    Inscrit en
    Septembre 2007
    Messages
    199
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 199
    Points : 148
    Points
    148
    Par défaut
    Alors je pense pas que SUM passe sur un type time.
    Obito oui tu as raison c´etait $data6[time_spent], mais ca plantouille qd meme !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    //get all the data for a specific project and all user
    $answer6 = mysql_query("SELECT * FROM work WHERE task='".$_POST['task']."'");
     
    //get total time spent for a  project
    $add = "";
    while ($data6 = mysql_fetch_array($answer6) )
    	{
    		$req = mysql_query("SELECT ADDTIME ('" .$add. "', '".$data6[time_spent]. "' ");
    		$total_hours = mysql_fetch_array($req);
    		echo 'Nombre total d´heures : '. $total_hours[0]. '.<BR>';
    	}

  7. #7
    Membre éprouvé Avatar de obito
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 773
    Points : 948
    Points
    948
    Par défaut
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    //get all the data for a specific project and all user
    $answer6 = mysql_query("SELECT * FROM work WHERE task='".$_POST['task']."'");
     
    //get total time spent for a  project
    $add = "";
    while ($data6 = mysql_fetch_array($answer6) )
    	{
    		$req = mysql_query("SELECT ADDTIME ('" .$add. "', '".$data6['time_spent']. "' ");
    		$total_hours = mysql_fetch_array($req);
    		echo 'Nombre total d´heures : '. $total_hours[0]. '.<BR>';
    	}

    Et même comme ça il aime pas?^^
    ►Ne pas oublier le

  8. #8
    Membre actif Avatar de BlackSmith
    Inscrit en
    Mars 2008
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Mars 2008
    Messages : 181
    Points : 207
    Points
    207
    Par défaut
    ton problème vient du fait que $add ne contient pas un time.

  9. #9
    Membre habitué
    Inscrit en
    Septembre 2007
    Messages
    199
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 199
    Points : 148
    Points
    148
    Par défaut
    Apparrement non malheuresuement...

    $add = "00:00:00"; ne change rien

  10. #10
    Membre éprouvé Avatar de obito
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 773
    Points : 948
    Points
    948
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    //get all the data for a specific project and all user
    $answer6 = mysql_query("SELECT * FROM work WHERE task='".$_POST['task']."'");
     
    //get total time spent for a  project
    $add = "";
    while ($data6 = mysql_fetch_array($answer6) )
    	{
                    $var=$data6['time_spent'];
    		$req = mysql_query("SELECT ADDTIME ('$add', '$var') as Total ");
    		$total_hours = mysql_fetch_assoc($req);
    		echo 'Nombre total d´heures : '. $total_hours['Total']. '.<BR>';
    	}
    Et comme ça?
    ►Ne pas oublier le

  11. #11
    Membre habitué
    Inscrit en
    Septembre 2007
    Messages
    199
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 199
    Points : 148
    Points
    148
    Par défaut

  12. #12
    Membre actif Avatar de BlackSmith
    Inscrit en
    Mars 2008
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Mars 2008
    Messages : 181
    Points : 207
    Points
    207
    Par défaut
    Essaye avec cette requête SQL.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT SEC_TO_TIME(SUM(TIME_TO_SEC(time_spent))) 
    AS 'total'
    FROM work

  13. #13
    Membre habitué
    Inscrit en
    Septembre 2007
    Messages
    199
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 199
    Points : 148
    Points
    148
    Par défaut
    Voila ca marche !
    Tu as raison Blacksmith, j´avais commence de me tourner vers ca aussi.

    La solution en php si jamais un jour d´autres galere lol.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $answer6 = mysql_query("SELECT SEC_TO_TIME(SUM(TIME_TO_SEC(time_spent))) FROM work WHERE task='".$_POST['task']."'");
    $data6 = mysql_fetch_array($answer6);
    echo $data6[0];

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 03/10/2014, 11h33
  2. [MySQL] Dernière entrée pour un champs spécifique dans une jointure
    Par boggwuro dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 23/02/2014, 01h26
  3. Probleme dans une boucle while pour remplir une JTable
    Par sky88 dans le forum Composants
    Réponses: 3
    Dernier message: 27/03/2008, 14h01
  4. Réponses: 6
    Dernier message: 17/06/2005, 16h51
  5. [MFC] Dialog dans une boucle while
    Par oxor3 dans le forum MFC
    Réponses: 5
    Dernier message: 23/04/2004, 22h51

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