Comment comparer les heures

Eléphanteau du PHP | 21 Messages

29 avr. 2005, 18:53

Bonjour,
Je voudrais savoir comment insérer dans une table le résultat d'un écart entre deux heures différentes.
Je m'explique j'ai une heure de début et une heure de fin et je voudrais faire la diffrénce entre les deux pour savoir le temps écoulé entre les deux heures le tous insérrer dans ma base et sur la meme table. voici mon code :

<?php require_once('connexion.php'); ?>
<?php
session_start(); // On relaye la session
if (session_is_registered("authentification")){ // vérification sur la session authentification (la session est elle enregistrée ?)
// ici les éventuelles actions en cas de réussite de la connexion
}
else {
header("Location:index.php?erreur=intru"); // redirection en cas d'echec
}
?>
<? $date = date("Y-m-d"); ?>
<html>
<head>
<title>Formulaire SOS Oppo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>
<BODY BGCOLOR="#99CCCC">
<div align="center">
<img src="images/logo_monecam.gif">
<br>
<p>Bienvenue <strong><?php echo $_SESSION['nom']; ?>
<?php echo $_SESSION['prenom']; ?> </strong> nous somme le <strong><? echo $date; ?></strong></p>
<?
$debutime = date("H:i:s");
echo ("Heure de début de la saisie est $debutime");
?>
<br><br>
<table width="500" bordercolor="#990000" bgcolor="#F4FBE6" border="1" cellpadding="10">
<tr>
<td>
<form method='post' action='stop3.php?action=insert'><br>
<FIELDSET><LEGEND><b><font color="red">Choix de la caisse</font></b></LEGEND>
<select name="caisse">
<option>Sud Rhone Alpes</option>
<option>Loire Haute Loire</option>
<option>Deux Savoie</option>
<option>Centre Est</option>
</select> Indiquez la caisse
</FIELDSET><br>
<FIELDSET><LEGEND><b><font color="red">Carte</font></b></LEGEND>
<INPUT TYPE="HIDDEN" NAME="starttime" VALUE="<? echo $debutime ?>">
<INPUT TYPE="CHECKBOX" NAME="cas" VALUE="1"> Simple <br>
<INPUT TYPE="CHECKBOX" NAME="cac" VALUE="1"> Complexe <br>
<select name="cartplus">
<option> </option>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
<option>7</option>
<option>8</option>
<option>9</option>
</select> Indiquez nombre de carte si plus suppérieur à 1
</FIELDSET><br>
<FIELDSET><LEGEND><b><font color="red">Chèque</font></b></LEGEND>
<INPUT TYPE="CHECKBOX" NAME="chs" VALUE="1"> Simple <br>
<INPUT TYPE="CHECKBOX" NAME="chc" VALUE="1"> Complexe <br>
<select name="chqplus">
<option> </option>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
<option>7</option>
<option>8</option>
<option>9</option>
</select> Indiquez nombre de chèque si plus suppérieur à 1<br>
</FIELDSET><br>
<FIELDSET><LEGEND><b><font color="red">Annulation opposition</font></b></LEGEND>
<INPUT TYPE="CHECKBOX" NAME="anucas" VALUE="1"> Carte
<INPUT TYPE="CHECKBOX" NAME="anuch" VALUE="1"> Chèque
</FIELDSET><br>
<FIELDSET><LEGEND><b><font color="red">Divers</font></b></LEGEND>
<INPUT TYPE="CHECKBOX" NAME="deminfo" VALUE="1"> Demande d'info<br>
<INPUT TYPE="CHECKBOX" NAME="regnocouv" VALUE="1"> Région non couverte<br>
<INPUT TYPE="CHECKBOX" NAME="litige" VALUE="1"> Litige<br>
<INPUT TYPE="CHECKBOX" NAME="mauvnum" VALUE="1"> Mauvais Numéro<br>
<INPUT TYPE="CHECKBOX" NAME="autre" VALUE="1"> Autre<br>
</FIELDSET>
<br>
<div align="center">
<input type='submit' name='submit' value='Fin de Saisie'>
</div>
</form>
</td>
</tr>
</table>
</div>
<?
if (isset($_GET['action']) and ($_GET['action']=="insert"))
{
$endtime = date("H:i:s");
$tpsepasse = $endtime - $_POST['starttime'];
// connexion à la base
$db = mysql_connect('126.1.1.179', 'sosoppo', 'oppose') or die('Erreur de connexion '.mysql_error());
// sélection de la base
mysql_select_db('SOS_Oppo',$db) or die('Erreur de selection '.mysql_error());
// on écrit la requête sql
$requete="INSERT INTO sos(id, nom, date, debutime, tpsepasse, caisse, cas, cac, cartplus, chs, chc, chqplus, anucas, anuch, deminfo, regnocouv, litige, mauvnum, autre, endtime) VALUES ('', '".$_SESSION['nom']."', '$date', '".$_POST['starttime']."', '$tpsepasse', '".$_POST['caisse']."', '".$_POST['cas']."', '".$_POST['cac']."', '".$_POST['cartplus']."', '".$_POST['chs']."', '".$_POST['chc']."', '".$_POST['chqplus']."', '".$_POST['anucas']."', '".$_POST['anuch']."', '".$_POST['deminfo']."','".$_POST['regnocouv']."', '".$_POST['litige']."', '".$_POST['mauvnum']."', '".$_POST['autre']."', '$endtime')";
mysql_query($requete);
mysql_close(); // on ferme la connexion
// header("Location:start.php");
?>
<SCRIPT LANGUAGE="JavaScript">
document.location.href="start.php"
</SCRIPT>
<?
}
?>


</html>

ViPHP
pjl
ViPHP | 2119 Messages

29 avr. 2005, 19:00

question similaire posée il y a moins d'un mois

Eléphanteau du PHP | 21 Messages

29 avr. 2005, 21:43

Aie !! encore un redresseur de tord, il y a un mois je ne connaissais pas le Forum et pour cause (je suis un débutant), j'ai posé cette question car je n'ai rien trouvé alors si tu as le lien sur le post d'il y a un mois je suis preneur...

Mammouth du PHP | 19672 Messages

29 avr. 2005, 22:06

Salut,
la solution n'est pas loin de ce que tu as fait : au lieu de prendre date() en point de repère, utilises time() (sans paramètres)
<?php
$debutime = time();
/* Reste de ton code jusqu'à.. */
$endtime = time();
$tpsepasse = $endtime - $_POST['starttime'];
?>
Le résultat est exprimé en secondes, à toi de reformatter à ton goût :)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 21 Messages

01 mai 2005, 14:36

Merci Cyrano j'ai fais ce que tu ma dis mais le soucis et que plus rien de s'affiche dans la base alors j'ai cherché une autre solution et qui fonctionne, le seul ennuie maintenant c'est que dans la base le résultat du temps passé s'affiche mais pas au dela de 1 minute. Quelqun a une idée ?
Voici le Code :
<?php require_once('connexion.php'); ?>
<?php
session_start(); // On relaye la session
if (session_is_registered("authentification")){ // vérification sur la session authentification (la session est elle enregistrée ?)
// ici les éventuelles actions en cas de réussite de la connexion
}
else {
header("Location:index.php?erreur=intru"); // redirection en cas d'echec
}
?>
<? $date = date("Y-m-d"); ?>
<html>
<head>
<title>Formulaire SOS Oppo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>
<BODY BGCOLOR="#99CCCC">
<div align="center">
<img src="images/logo_monecam.gif">
<br>
<p>Bienvenue <strong><?php echo $_SESSION['nom']; ?>
<?php echo $_SESSION['prenom']; ?> </strong> nous somme le <strong><? echo $date; ?></strong></p>
<?
$debutime = date("H:i:s"); //heure de debut de saisie qui sera inscrite dans la base
$debutime1= time (); //heure de debut qui servira au calcul du temps passe
echo ("Heure de début de la saisie est $debutime");
?>
<br><br>
<table width="500" bordercolor="#990000" bgcolor="#F4FBE6" border="1" cellpadding="10">
<tr>
<td>
<form method='post' action='stop3.php?action=insert'><br>
<FIELDSET><LEGEND><b><font color="red">Choix de la caisse</font></b></LEGEND>
<select name="caisse">
<option>Sud Rhone Alpes</option>
<option>Loire Haute Loire</option>
<option>Deux Savoie</option>
<option>Centre Est</option>
</select> Indiquez la caisse
</FIELDSET><br>
<FIELDSET><LEGEND><b><font color="red">Carte</font></b></LEGEND>
<INPUT TYPE="HIDDEN" NAME="starttime" VALUE="<? echo $debutime ?>">
<INPUT TYPE="HIDDEN" NAME="starttime2" VALUE="<? echo $debutime1 ?>">
<INPUT TYPE="CHECKBOX" NAME="cas" VALUE="1"> Simple <br>
<INPUT TYPE="CHECKBOX" NAME="cac" VALUE="1"> Complexe <br>
<select name="cartplus">
<option> </option>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
<option>7</option>
<option>8</option>
<option>9</option>
</select> Indiquez nombre de carte si suppérieur à 1
</FIELDSET><br>
<FIELDSET><LEGEND><b><font color="red">Chèque</font></b></LEGEND>
<INPUT TYPE="CHECKBOX" NAME="chs" VALUE="1"> Simple <br>
<INPUT TYPE="CHECKBOX" NAME="chc" VALUE="1"> Complexe <br>
<select name="chqplus">
<option> </option>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
<option>7</option>
<option>8</option>
<option>9</option>
</select> Indiquez nombre de chèque si suppérieur à 1<br>
</FIELDSET><br>
<FIELDSET><LEGEND><b><font color="red">Annulation opposition</font></b></LEGEND>
<INPUT TYPE="CHECKBOX" NAME="anucas" VALUE="1"> Carte
<INPUT TYPE="CHECKBOX" NAME="anuch" VALUE="1"> Chèque
</FIELDSET><br>
<FIELDSET><LEGEND><b><font color="red">Divers</font></b></LEGEND>
<INPUT TYPE="CHECKBOX" NAME="deminfo" VALUE="1"> Demande d'info<br>
<INPUT TYPE="CHECKBOX" NAME="regnocouv" VALUE="1"> Région non couverte<br>
<INPUT TYPE="CHECKBOX" NAME="litige" VALUE="1"> Litige<br>
<INPUT TYPE="CHECKBOX" NAME="mauvnum" VALUE="1"> Mauvais Numéro<br>
<INPUT TYPE="CHECKBOX" NAME="autre" VALUE="1"> Autre<br>
</FIELDSET>
<br>
<div align="center">
<input type='submit' name='submit' value='Fin de Saisie'>
</div>
</form>
</td>
</tr>
</table>
</div>
<?
if (isset($_GET['action']) and ($_GET['action']=="insert"))
{
$endtime = date("H:i:s"); //recuperation de l'heure de fin de saisie qui sera entree dans la base
$endtime2 = time(); //recuperation de l'heure de fin de saisie qui servira de calcul pour le temp passé
$tpsepasse = $endtime2 - $_POST['starttime2']; //Calcul du temps passé
// connexion à la base
$db = mysql_connect('126.1.1.179', 'sosoppo', 'oppose') or die('Erreur de connexion '.mysql_error());
// sélection de la base
mysql_select_db('SOS_Oppo',$db) or die('Erreur de selection '.mysql_error());
// on écrit la requête sql
$requete="INSERT INTO sos(id, nom, date, debutime, tpsepasse, caisse, cas, cac, cartplus, chs, chc, chqplus, anucas, anuch, deminfo, regnocouv, litige, mauvnum, autre, endtime) VALUES ('', '".$_SESSION['nom']."', '$date', '".$_POST['starttime']."', '$tpsepasse', '".$_POST['caisse']."', '".$_POST['cas']."', '".$_POST['cac']."', '".$_POST['cartplus']."', '".$_POST['chs']."', '".$_POST['chc']."', '".$_POST['chqplus']."', '".$_POST['anucas']."', '".$_POST['anuch']."', '".$_POST['deminfo']."','".$_POST['regnocouv']."', '".$_POST['litige']."', '".$_POST['mauvnum']."', '".$_POST['autre']."', '$endtime')";
mysql_query($requete);
mysql_close(); // on ferme la connexion
// header("Location:start.php");
?>
<SCRIPT LANGUAGE="JavaScript">
document.location.href="start.php"
</SCRIPT>
<?
}
?>

</html>

Mammouth du PHP | 19672 Messages

01 mai 2005, 14:45

Je dirais que c'est curieux : as-tu essayé de faire afficher le résultat avant de l'enregistrer ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 19672 Messages

01 mai 2005, 15:07

Non, ça y est, j'ai compris, je te mets le code corrigé et je t'explique après :
<?php
session_start(); // On relaye la session
require_once('connexion.php');
if (session_is_registered("authentification"))
{
    // vérification sur la session authentification (la session est elle enregistrée ?)
    // ici les éventuelles actions en cas de réussite de la connexion
}
else
{
    header("Location:index.php?erreur=intru"); // redirection en cas d'echec
}
$date = date("Y-m-d");
?>
<html>
<head>
<title>Formulaire SOS Oppo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>
<BODY BGCOLOR="#99CCCC">
<?
if (isset($_GET['action']) and ($_GET['action']=="insert"))
{
    $endtime = date("H:i:s"); //recuperation de l'heure de fin de saisie qui sera entree dans la base
    $endtime2 = time(); //recuperation de l'heure de fin de saisie qui servira de calcul pour le temp passé
    $tpsepasse = $endtime2 - $_POST['starttime2']; //Calcul du temps passé
    // connexion à la base
    $db = mysql_connect('126.1.1.179', '*********', '********') or die('Erreur de connexion '.mysql_error());
    // sélection de la base
    mysql_select_db('SOS_Oppo',$db) or die('Erreur de selection '.mysql_error());
    // on écrit la requête sql
    $requete="INSERT INTO sos(id, nom, date, debutime, tpsepasse, caisse, cas, cac, cartplus, chs, chc, chqplus, anucas, anuch, deminfo, regnocouv, litige, mauvnum, autre, endtime)".
    " VALUES ('', '".$_SESSION['nom']."', '$date', '".$_POST['starttime']."', '$tpsepasse', '".$_POST['caisse']."', '".$_POST['cas']."', '".$_POST['cac']."', '".$_POST['cartplus']."', '".$_POST['chs']."', '".$_POST['chc']."', '".$_POST['chqplus']."', '".$_POST['anucas']."', '".$_POST['anuch']."', '".$_POST['deminfo']."','".$_POST['regnocouv']."', '".$_POST['litige']."', '".$_POST['mauvnum']."', '".$_POST['autre']."', '$endtime')";
    mysql_query($requete);
    mysql_close(); // on ferme la connexion
    // header("Location:start.php");
?>
<SCRIPT LANGUAGE="JavaScript">
document.location.href="start.php"
</SCRIPT>
<?
}
?>
<div align="center">
<img src="images/logo_monecam.gif">
<br>
<p>Bienvenue <strong><?php echo $_SESSION['nom']; ?>
<?php echo $_SESSION['prenom']; ?></strong> nous somme le <strong><? echo $date; ?></strong></p>
<?
$debutime = date("H:i:s"); //heure de debut de saisie qui sera inscrite dans la base
$debutime1= time (); //heure de debut qui servira au calcul du temps passe
echo ("Heure de début de la saisie est $debutime");
?>
<br><br>
<table width="500" bordercolor="#990000" bgcolor="#F4FBE6" border="1" cellpadding="10">
  <tr>
    <td>
      <form method='post' action='stop3.php?action=insert'><br>
        <FIELDSET><LEGEND><b><font color="red">Choix de la caisse</font></b></LEGEND>
        <select name="caisse">
        <option>Sud Rhone Alpes</option>
        <option>Loire Haute Loire</option>
        <option>Deux Savoie</option>
        <option>Centre Est</option>
        </select> Indiquez la caisse
        </FIELDSET><br>
        <FIELDSET><LEGEND><b><font color="red">Carte</font></b></LEGEND>
        <INPUT TYPE="HIDDEN" NAME="starttime" VALUE="<? echo $debutime ?>">
        <INPUT TYPE="HIDDEN" NAME="starttime2" VALUE="<? echo $debutime1 ?>">
        <INPUT TYPE="CHECKBOX" NAME="cas" VALUE="1"> Simple <br>
        <INPUT TYPE="CHECKBOX" NAME="cac" VALUE="1"> Complexe <br>
        <select name="cartplus">
        <option> </option>
        <option>1</option>
        <option>2</option>
        <option>3</option>
        <option>4</option>
        <option>5</option>
        <option>6</option>
        <option>7</option>
        <option>8</option>
        <option>9</option>
        </select> Indiquez nombre de carte si suppérieur à 1
        </FIELDSET><br>
        <FIELDSET><LEGEND><b><font color="red">Chèque</font></b></LEGEND>
        <INPUT TYPE="CHECKBOX" NAME="chs" VALUE="1"> Simple <br>
        <INPUT TYPE="CHECKBOX" NAME="chc" VALUE="1"> Complexe <br>
        <select name="chqplus">
        <option> </option>
        <option>1</option>
        <option>2</option>
        <option>3</option>
        <option>4</option>
        <option>5</option>
        <option>6</option>
        <option>7</option>
        <option>8</option>
        <option>9</option>
        </select> Indiquez nombre de chèque si suppérieur à 1<br>
        </FIELDSET><br>
        <FIELDSET><LEGEND><b><font color="red">Annulation opposition</font></b></LEGEND>
        <INPUT TYPE="CHECKBOX" NAME="anucas" VALUE="1"> Carte
        <INPUT TYPE="CHECKBOX" NAME="anuch" VALUE="1"> Chèque
        </FIELDSET><br>
        <FIELDSET><LEGEND><b><font color="red">Divers</font></b></LEGEND>
        <INPUT TYPE="CHECKBOX" NAME="deminfo" VALUE="1"> Demande d'info<br>
        <INPUT TYPE="CHECKBOX" NAME="regnocouv" VALUE="1"> Région non couverte<br>
        <INPUT TYPE="CHECKBOX" NAME="litige" VALUE="1"> Litige<br>
        <INPUT TYPE="CHECKBOX" NAME="mauvnum" VALUE="1"> Mauvais Numéro<br>
        <INPUT TYPE="CHECKBOX" NAME="autre" VALUE="1"> Autre<br>
        </FIELDSET>
        <br>
        <div align="center">
        <input type='submit' name='submit' value='Fin de Saisie'>
        </div>
      </form>
    </td>
  </tr>
</table>
</div>
</body>
</html>
Regarde bien, j'ai déplacé le test de fin en début de page : sinon, au chargement, on ré-initialise une des variable et on a un calcul qui va fausser... Logique, mais il faut essayer de se représenter que la page se recharge et que tout est interprété dans l'ordre d'apparition...
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

01 mai 2005, 15:41

Non c'est pareil dans ma base le résultat s'affiche "00:00:04" quand la saisie dure 4 seconde mais des que je laisse le formulaire plus d'une minute le resutat obtenu est "00:00:00" alors que le debutime est bien "15:26:46" et le endtime est "15:34:03" on dirait qu'il calcul uniquement les secondes.

Mammouth du PHP | 19672 Messages

01 mai 2005, 15:46

Essaye de faire afficher $tpsepasse juste avant l'insertion pour voir ce que ça donne.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 21 Messages

01 mai 2005, 16:00

Excuse moi mais je ne sais pas faire cela car l'heure de fin de saisie ce fait juste au moment ou on valide le formulaire, a moins d'un autre moyen mais je suis pas encore assez calé :?

Mammouth du PHP | 19672 Messages

01 mai 2005, 16:07

Je viens de faire un test : j'ai du commenter un certain nombre de ligne et je n'ai pas de session, mais on s'en fout, je voulais voir le résultat : essaye ce code : remplis ton formulaire et appuie sur le bouton de validation: tu vas voir un résultat en nombre de secondes :
<?php
session_start(); // On relaye la session
//require_once('connexion.php');
//if (session_is_registered("authentification"))
//{
    // vérification sur la session authentification (la session est elle enregistrée ?)
    // ici les éventuelles actions en cas de réussite de la connexion
//}
//else
//{
//    header("Location:index.php?erreur=intru"); // redirection en cas d'echec
//}
$date = date("Y-m-d");
?>
<html>
<head>
<title>Formulaire SOS Oppo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>
<BODY BGCOLOR="#99CCCC">
<?
if (isset($_GET['action']) and ($_GET['action']=="insert"))
{
    $endtime = date("H:i:s"); //recuperation de l'heure de fin de saisie qui sera entree dans la base
    $endtime2 = time(); //recuperation de l'heure de fin de saisie qui servira de calcul pour le temp passé
    $tpsepasse = $endtime2 - $_POST['starttime2']; //Calcul du temps passé
    echo("<p>Début de saisie : ". $_POST['starttime2'] ."<br />\nFin de saisie : ". $endtime2 ."<br />\nDurée de la saisie : ". $tpsepasse ."</p>\n");
    // connexion à la base
    // $db = mysql_connect('126.1.1.179', '*********', '********') or die('Erreur de connexion '.mysql_error());
    // sélection de la base
    // mysql_select_db('SOS_Oppo',$db) or die('Erreur de selection '.mysql_error());
    // on écrit la requête sql
    $requete="INSERT INTO sos(id, nom, date, debutime, tpsepasse, caisse, cas, cac, cartplus, chs, chc, chqplus, anucas, anuch, deminfo, regnocouv, litige, mauvnum, autre, endtime)".
    " VALUES ('', '".$_SESSION['nom']."', '$date', '".$_POST['starttime']."', '$tpsepasse', '".$_POST['caisse']."', '".$_POST['cas']."', '".$_POST['cac']."', '".$_POST['cartplus']."', '".$_POST['chs']."', '".$_POST['chc']."', '".$_POST['chqplus']."', '".$_POST['anucas']."', '".$_POST['anuch']."', '".$_POST['deminfo']."','".$_POST['regnocouv']."', '".$_POST['litige']."', '".$_POST['mauvnum']."', '".$_POST['autre']."', '$endtime')";
    // mysql_query($requete);
    // mysql_close(); // on ferme la connexion
    // header("Location:start.php");
?>
<!--
<SCRIPT LANGUAGE="JavaScript">
document.location.href="start.php"
</SCRIPT>
-->
<?
}
?>
<div align="center">
<img src="images/logo_monecam.gif">
<br>
<p>Bienvenue <strong><?php echo $_SESSION['nom']; ?>
<?php echo $_SESSION['prenom']; ?></strong> nous somme le <strong><? echo $date; ?></strong></p>
<?
$debutime = date("H:i:s"); //heure de debut de saisie qui sera inscrite dans la base
$debutime1= time (); //heure de debut qui servira au calcul du temps passe
echo ("Heure de début de la saisie est $debutime");
?>
<br><br>
<table width="500" bordercolor="#990000" bgcolor="#F4FBE6" border="1" cellpadding="10">
  <tr>
    <td>
      <form method='post' action='<?php echo($_SERVER['PHP_SELF']); ?>?action=insert'><br>
        <FIELDSET><LEGEND><b><font color="red">Choix de la caisse</font></b></LEGEND>
        <select name="caisse">
        <option>Sud Rhone Alpes</option>
        <option>Loire Haute Loire</option>
        <option>Deux Savoie</option>
        <option>Centre Est</option>
        </select> Indiquez la caisse
        </FIELDSET><br>
        <FIELDSET><LEGEND><b><font color="red">Carte</font></b></LEGEND>
        <INPUT TYPE="HIDDEN" NAME="starttime" VALUE="<? echo $debutime ?>">
        <INPUT TYPE="HIDDEN" NAME="starttime2" VALUE="<? echo $debutime1 ?>">
        <INPUT TYPE="CHECKBOX" NAME="cas" VALUE="1"> Simple <br>
        <INPUT TYPE="CHECKBOX" NAME="cac" VALUE="1"> Complexe <br>
        <select name="cartplus">
        <option> </option>
        <option>1</option>
        <option>2</option>
        <option>3</option>
        <option>4</option>
        <option>5</option>
        <option>6</option>
        <option>7</option>
        <option>8</option>
        <option>9</option>
        </select> Indiquez nombre de carte si suppérieur à 1
        </FIELDSET><br>
        <FIELDSET><LEGEND><b><font color="red">Chèque</font></b></LEGEND>
        <INPUT TYPE="CHECKBOX" NAME="chs" VALUE="1"> Simple <br>
        <INPUT TYPE="CHECKBOX" NAME="chc" VALUE="1"> Complexe <br>
        <select name="chqplus">
        <option> </option>
        <option>1</option>
        <option>2</option>
        <option>3</option>
        <option>4</option>
        <option>5</option>
        <option>6</option>
        <option>7</option>
        <option>8</option>
        <option>9</option>
        </select> Indiquez nombre de chèque si suppérieur à 1<br>
        </FIELDSET><br>
        <FIELDSET><LEGEND><b><font color="red">Annulation opposition</font></b></LEGEND>
        <INPUT TYPE="CHECKBOX" NAME="anucas" VALUE="1"> Carte
        <INPUT TYPE="CHECKBOX" NAME="anuch" VALUE="1"> Chèque
        </FIELDSET><br>
        <FIELDSET><LEGEND><b><font color="red">Divers</font></b></LEGEND>
        <INPUT TYPE="CHECKBOX" NAME="deminfo" VALUE="1"> Demande d'info<br>
        <INPUT TYPE="CHECKBOX" NAME="regnocouv" VALUE="1"> Région non couverte<br>
        <INPUT TYPE="CHECKBOX" NAME="litige" VALUE="1"> Litige<br>
        <INPUT TYPE="CHECKBOX" NAME="mauvnum" VALUE="1"> Mauvais Numéro<br>
        <INPUT TYPE="CHECKBOX" NAME="autre" VALUE="1"> Autre<br>
        </FIELDSET>
        <br>
        <div align="center">
        <input type='submit' name='submit' value='Fin de Saisie'>
        </div>
      </form>
    </td>
  </tr>
</table>
</div>
</body>
</html>
Donc mon résultat est là: le problème vient peut-être de ce que tu l'envoies tel quel dans ta base sans le moindre formattage....? Quel est le type du champ dans lequel tu envoies cette donnée ??
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 21 Messages

01 mai 2005, 16:21

Voila les caractéristiques de la table "sos"

CREATE TABLE `sos` (
`id` int(4) NOT NULL auto_increment,
`nom` varchar(20) NOT NULL default '',
`date` date NOT NULL default '',
`debutime` time NOT NULL default '00:00:00',
`endtime` time NOT NULL default '00:00:00',
`tpsepasse` time NOT NULL default '00:00:00',
`caisse` varchar(20) NOT NULL default '',
`cas` varchar(5) NOT NULL default '',
`cac` varchar(5) NOT NULL default '',
`cartplus` varchar(5) NOT NULL default '',
`chs` varchar(5) NOT NULL default '',
`chc` varchar(5) NOT NULL default '',
`chqplus` varchar(5) NOT NULL default '',
`anucas` varchar(5) NOT NULL default '',
`anuch` varchar(5) NOT NULL default '',
`deminfo` varchar(7) NOT NULL default '',
`regnocouv` varchar(9) NOT NULL default '',
`litige` varchar(6) NOT NULL default '',
`mauvnum` varchar(7) NOT NULL default '',
`autre` varchar(5) NOT NULL default '',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=2 ;

Eléphanteau du PHP | 21 Messages

01 mai 2005, 16:47

je commence a comprendre en faite oui le resutat par dans la base tel quel et vu que le champs et au format time forcément ça marche pas, la question est comment convertir le resutat qui est en entier au format time et de l'insérer dans la base à la limeite meme au formate caracthère..

Mammouth du PHP | 19672 Messages

01 mai 2005, 16:57

Tu as la réponse sous les yeux :
`tpsepasse` time NOT NULL default '00:00:00',
Tu essayes d'enregistrer une donnée de type INT dans un champ TIME, ça ne peut que bogguer.
Il faut que tu traites la valeur obtenue dans $tpsepasse pour la mettre au format TIME:
$difference = $endtime2 - $_POST['starttime2']; //Calcul du temps passé
    /* Calcul du nombre d'heures */
    $nb_hr = floor($difference / 3600);
    /* Calcul du nombre de minutes */
    $nb_mn = floor(($difference - ($nb_hr * 3600))/60);
    /* Calcul du nombre de secondes restant */
    $sec_hr = $nb_hr * 3600;
    $sec_mn = $nb_mn * 60;
    $nb_sec = $difference -($sec_hr + $sec_mn);
    /* Formatage du temps passé */
    $tpsepasse = $nb_hr.":".$nb_mn.":".$nb_sec;
Voilà, comme ça, ça devrait fonctionner :)
J'espère en tous cas, j'y ai passé une heure
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 21 Messages

01 mai 2005, 17:45

Donc la je n'ai rien touché à la table , je l'ai laissée tel quel , j'ai rajouté le code ce qui donne :

<?php
session_start(); // On relaye la session
require_once('connexion.php');
if (session_is_registered("authentification"))
{
// vérification sur la session authentification (la session est elle enregistrée ?)
// ici les éventuelles actions en cas de réussite de la connexion
}
else
{
header("Location:index.php?erreur=intru"); // redirection en cas d'echec
}
$date = date("Y-m-d");
?>
<html>
<head>
<title>Formulaire SOS Oppo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>
<BODY BGCOLOR="#99CCCC">
<?
if (isset($_GET['action']) and ($_GET['action']=="insert"))
{
$endtime = date("H:i:s"); //recuperation de l'heure de fin de saisie qui sera entree dans la base
$difference = $endtime2 - $_POST['starttime2']; //Calcul du temps passé
/* Calcul du nombre d'heures */
$nb_hr = floor($difference / 3600);
/* Calcul du nombre de minutes */
$nb_mn = floor(($difference - ($nb_hr * 3600))/60);
/* Calcul du nombre de secondes restant */
$sec_hr = $nb_hr * 3600;
$sec_mn = $nb_mn * 60;
$nb_sec = $difference -($sec_hr + $sec_mn);
/* Formatage du temps passé */
$tpsepasse = $nb_hr.":".$nb_mn.":".$nb_sec;
// connexion à la base
$db = mysql_connect('xxxxxxxxxxx', 'xxxxxx', 'xxxxx') or die('Erreur de connexion '.mysql_error());
// sélection de la base
mysql_select_db('SOS_Oppo',$db) or die('Erreur de selection '.mysql_error());
// on écrit la requête sql
$requete="INSERT INTO sos(id, nom, date, debutime, tpsepasse, caisse, cas, cac, cartplus, chs, chc, chqplus, anucas, anuch,

deminfo, regnocouv, litige, mauvnum, autre, endtime)".
" VALUES ('', '".$_SESSION['nom']."', '$date', '".$_POST['starttime']."', '$tpsepasse', '".$_POST['caisse']."', '".$_POST['cas']."',

'".$_POST['cac']."', '".$_POST['cartplus']."', '".$_POST['chs']."', '".$_POST['chc']."', '".$_POST['chqplus']."', '".$_POST['anucas']."',

'".$_POST['anuch']."', '".$_POST['deminfo']."','".$_POST['regnocouv']."', '".$_POST['litige']."', '".$_POST['mauvnum']."',

'".$_POST['autre']."', '$endtime')";
mysql_query($requete);
mysql_close(); // on ferme la connexion
// header("Location:start.php");
?>
<SCRIPT LANGUAGE="JavaScript">
document.location.href="start.php"
</SCRIPT>
<?
}
?>
<div align="center">
<img src="images/logo_monecam.gif">
<br>
<p>Bienvenue <strong><?php echo $_SESSION['nom']; ?>
<?php echo $_SESSION['prenom']; ?></strong> nous somme le <strong><? echo $date; ?></strong></p>
<?
$debutime = date("H:i:s"); //heure de debut de saisie qui sera inscrite dans la base
$debutime1= time (); //heure de debut qui servira au calcul du temps passe
echo ("Heure de début de la saisie est $debutime");
?>
<br><br>
<table width="500" bordercolor="#990000" bgcolor="#F4FBE6" border="1" cellpadding="10">
<tr>
<td>
<form method='post' action='stop3.php?action=insert'><br>
<FIELDSET><LEGEND><b><font color="red">Choix de la caisse</font></b></LEGEND>
<select name="caisse">
<option>Sud Rhone Alpes</option>
<option>Loire Haute Loire</option>
<option>Deux Savoie</option>
..../....
<br>
<div align="center">
<input type='submit' name='submit' value='Fin de Saisie'>
</div>
</form>
</td>
</tr>
</table>
</div>
</body>
</html>

Le résultat dans la base : on obtiens bien les heure de début et fin mais un chiffre dans tpsepasse s'affiche qui est d'ailleurs toujours le même "838:59:59"