Page 1 sur 1

enregistrer une date

Posté : 27 avr. 2006, 09:32
par Julien75
Bonjour,

Voila, j'ai un problème pour gérer les dates. Je sais vous allez me dire que ce sujet à deja été traité de nombreuses fois dans les forum. J'ai regardé un peu partout, mais je nais pas réussi a trouvé la solution a mon cas.
Donc en faite, j'ai pas de problème pour faire afficher une date, j'utilise date_format. Le problème c'est plutot pour enregistrer une date que j'ai saisi.

J'ai essayer date_format, mais en inversant :
DATE_FORMAT(`date_deb`,'%Y/%m/%d')
cela ne marche pas

j'ai alors essayer
if (isset($_POST['datedeb']))
{
    
	list($annee, $mois, $jour) = explode("/", $_POST['datedeb']); 
	$datedeb = $jour."-".$mois."-".$annee;
}
else
{
	$datedeb = "";
}
mais cela ne marche pas non plus.
es-ce que vous auriez une idée ?
j'espère que j'aurai été assez clair.
merci

Posté : 27 avr. 2006, 09:47
par charabia
Qu'entends-tu par "enregistrer une date" ? Dans ta bdd à partir d'un formulaire ?

Quel est le type de ce champ dans ta bdd ?

Posté : 27 avr. 2006, 09:50
par julien75
Il est au format date dans la base de donnée, et c'est bien a partir d'un formulaire.

merci

Posté : 27 avr. 2006, 10:13
par charabia
Je ne saisis pas trop ce qui ne fonctionne pas dans ce cas.

Dans le champ tu rentres une date de format YYYY-MM-JJ et tout devrait marcher non ?

Ou bien tu veux justement entrer une date FR de type 27/05/2006 et que ça s'intègre en 2006-05-27 ?

Posté : 27 avr. 2006, 10:14
par julien75
exactement, je veux rentrer une date au format 27/05/2006 et que ça s'intègre en 2006-05-27

Posté : 27 avr. 2006, 10:21
par charabia
Dans ce cas ta fonction explode devrait fonctionner. Tu as quoi comme erreur ? L'insertion ne se fait pas ?

Fait nous voir ton code d'insertion.

Posté : 27 avr. 2006, 10:27
par julien75
function absModify($numabs, $datedeb, $datefin, $heuredeb, $heurefin, $raison, $just, $nump) {
    $result = mysql_query("select * from absence where num_abs = '$numabs'");
    $row = mysql_fetch_object($result);
    if ($row) {
        $query = "update absence set date_debut_abs='$datedeb', date_fin_abs='$datefin', heure_debut_abs='$heuredeb', heure_fin_abs='$heurefin', raison_abs='$raison', justificatif='$just', num_pers='$nump' where num_abs = '$numabs'";
 		mysql_query($query);
    }
    mysql_free_result($result);
}
je n'ai pas de message d'erreur, ça m'enregistre 0000-00-00, comme si je n'avais rien ecrit

merci

Posté : 27 avr. 2006, 10:33
par charabia
Que te donne ce test :
<?php
if (isset($_POST['datedeb'])) 
{ 
     
    list($annee, $mois, $jour) = explode("/", $_POST['datedeb']); 
    $datedeb = $jour."-".$mois."-".$annee; 
} 
else 
{ 
    $datedeb = ""; 
}

echo $datedeb;
?>
<form action="date.php" method="post">
<input type="Text" name="datedeb"><input type="Submit" value="go">
</form>

Posté : 27 avr. 2006, 10:49
par julien75
2006-04-12
Warning: Cannot modify header information - headers already sent by (output started at C:...\absenceMod.php:19) in C:...\absenceMod.php on line 47

ligne 46, 47 j'ai :
absModify($numabs, $datedeb, $datefin, $heuredeb, $heurefin, $raison, $just, $nump);
header("Location: consult_absence.php?num=$nump");

Posté : 27 avr. 2006, 10:52
par charabia
Oui ça c'est normal, mais il t'affiche bien la date inversée correctement.

Donc la fonction marche bien. As-tu testé ta requête directement dans phpMyAdmin ?

Posté : 27 avr. 2006, 11:01
par julien75
ma requete marche bien...
j'ai reregarder mon cod, et a faire du copier coller, j'ai oublier de changer datedeb par heuredeb. Donc forcement.
J'en ai marre je fait toujours des fautes d'inatentions, j'ai beau me relire je vois pas.
Merci beaucoup pour ton aide.

Posté : 27 avr. 2006, 11:03
par charabia
C'est le lot des informaticiens les fautes d'inattention :langue:

Donc [Résolu] ? :)