Page 1 sur 2
Comment comparer les heures
Posté : 29 avr. 2005, 18:53
par lemamouthe
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>
Posté : 29 avr. 2005, 19:00
par pjl
question similaire posée il y a moins d'un mois
Posté : 29 avr. 2005, 21:43
par lemamouthe
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...
Posté : 29 avr. 2005, 22:06
par Cyrano
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

Posté : 01 mai 2005, 14:36
par lemamouthe
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>
Posté : 01 mai 2005, 14:45
par Cyrano
Je dirais que c'est curieux : as-tu essayé de faire afficher le résultat avant de l'enregistrer ?
Posté : 01 mai 2005, 15:07
par Cyrano
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...
Posté : 01 mai 2005, 15:41
par Invité
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.
Posté : 01 mai 2005, 15:46
par Cyrano
Essaye de faire afficher $tpsepasse juste avant l'insertion pour voir ce que ça donne.
Posté : 01 mai 2005, 16:00
par lemamouthe
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é :?
Posté : 01 mai 2005, 16:07
par Cyrano
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 ??
Posté : 01 mai 2005, 16:21
par lemamouthe
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 ;
Posté : 01 mai 2005, 16:47
par lemamouthe
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..
Posté : 01 mai 2005, 16:57
par Cyrano
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
Posté : 01 mai 2005, 17:45
par lemamouthe
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"