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 :

addition de résultats de type "time" [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Par défaut addition de résultats de type "time"
    bonjour à tous!!

    j'ai ma table "affaire" avec entre autre le "nom_afaire", "date" , "temps" de type time, "temps_total" qui est de type time.


    j'insere donc dans cette table, tous les jours, un nouveau temps passé à travailler sur une affaire et j'aimerai qu'à chaque nouvelle insertion que ça me calcul un temps total

    voici ce que je veux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $s = "SELECT temps FROM affaire WHERE nom_affaire = 'GH'";
    $q = mysql_query($s);
    $fe = mysql_fetch_array($q);
     
    echo $fe['temps']."ancien temps<br>";
     
    $nouvo = $fe['temps'] + '03:00:00';
    echo $nouvo."temps<br>";
    $fe['temps'] = 03:00:00

    en faite j'ai comme résultat 6 mais ça ne m'additionne que les heures et pas les minutes ni les secondes..


    quelqu'un pourrait il m'aider à faire ce que je veux (additionner 2 heures )?

    merci beaucoup pour votre aide..

  2. #2
    Invité
    Invité(e)
    Par défaut
    Il existe des fonctions en mysql pour additionner des temps.
    En php, tu peux tout convertir en timestamp avec mktime() et faire tes additions.
    A priori, ce post devrait être dans général Php.

  3. #3
    Membre éprouvé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Par défaut
    ok c'est cool merci


    je laisse mon code
    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
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
     
    $nom = $_POST['nom'];
    $temps = $_POST['temps'];
     
    $affaire = "SELECT * FROM affaire WHERE nom_affaire = '".$nom."'";
    $quer = mysql_query($affaire);
    $fe = mysql_fetch_array($quer);
     
    if (mysql_num_rows($quer) >0)
    {
     
       $s = "SELECT temps_total FROM affaire WHERE nom_affaire = '".$nom."'";
       $q = mysql_query($s);
       $fe = mysql_fetch_array($q);
     
       echo $fe['temps_total']."ancien temps<br>";
     
       $tempstot = $fe['temps_total'];
       //echo $tempstot."<br>";
     
       $heure1 = $temps;
       $heure2 = $tempstot;
       //Extractions des différents paramètres
       list($h1, $m1, $sec1) = explode(':', $heure1);
       list($h2, $m2, $sec2) = explode(':', $heure2);
     
       $timestamp1 = mktime ($h1, $m1, $sec1, 7, 9, 2006);
       $timestamp2 = mktime ($h2, $m2, $sec2, 7, 9, 2006);
     
       $hrTotal = $h1 + $h2;
       //echo $hrTotal."<br>";
       $mtot = $m1 + $m2;
       $stot = $sec1 + $sec2;
     
             if ($mtot ==60)
                {
                $hrTotal = $hrTotal +1;
     
                         if  ($hrTotal < 10)
                         {
                         $heuretot = "0".$hrTotal.":00:".$stot."0";
                         }
                         else
                         {
                         $heuretot = "".$hrTotal.":00:".$stot."0";
                         }
                         }
     
            elseif ($mtot >60)
            {
            $mtot = $mtot - 60;
            $hrTotal = $hrTotal +1;
     
     
              if  ($hrTotal < 10)
              {
              $heuretot = "0".$hrTotal.":".$mtot.":".$stot."0";
              }
                else
                {
                $heuretot = "".$hrTotal.":".$mtot.":".$stot."0";
                }
             }
     
            elseif  ($mtot <60)
            {
     
              if  ($hrTotal < 10)
              {
              $heuretot = "0".$hrTotal.":".$mtot.":".$stot."0";
              }
     
                else
                {
                $heuretot = "".$hrTotal.":".$mtot.":".$stot."0";
                } 
             }
     
     $up = "UPDATE affaire SET temps_total = '".$heuretot."' WHERE nom_affaire = '".$nom."'";
     $quer = mysql_query($up);
     $aff = mysql_affected_rows();
     
     if ($aff)
     {
       echo "MAJ ok";
     }
     
    }
     
    else
    {
    $insert = "INSERT INTO affaire VALUES('".$nom."', '".$date."', '".$temps."')";
    $querin = mysql_query($insert);
    $affin = mysql_affected_rows(); 
    }

  4. #4
    Membre éprouvé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Par défaut
    aaaa j'avais oublié
    est ce que tu peux à quoi sert "7, 9, 2006", dans ce bout de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     mktime ($h1, $m1, $sec1, 7, 9, 2006);
    et est ce que c'est oubligé de mettre 7, 9, 2006 ?

  5. #5
    Invité
    Invité(e)
    Par défaut
    Un copier/coller de la doc php:
    8.20.22 mktime() : Retourne le timestamp UNIX d'une date

    int mktime ( int hour , int minute , int second , int month , int day , int year , int is_dst )

    mktime retourne un timestamp UNIX correspondant aux arguments fournis. Ce timestamp est un
    entier long, contenant le nombre de secondes entre le début de l'époque UNIX (1er Janvier 1970
    00:00:00 GMT) et le temps spécifié.

    Les arguments peuvent être omis, de droite à gauche, et tous les arguments manquants sont
    utilisés avec la valeur courante de l'heure et du jour.

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

Discussions similaires

  1. Addition de champs de type time
    Par GianT[971] dans le forum Langage SQL
    Réponses: 8
    Dernier message: 29/04/2005, 22h55

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