[RESOLU] enregistrer une date

Julien75
Invité n'ayant pas de compte PHPfrance

27 avr. 2006, 09:32

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

Avatar du membre
ViPHP
ViPHP | 3008 Messages

27 avr. 2006, 09:47

Qu'entends-tu par "enregistrer une date" ? Dans ta bdd à partir d'un formulaire ?

Quel est le type de ce champ dans ta bdd ?

julien75
Invité n'ayant pas de compte PHPfrance

27 avr. 2006, 09:50

Il est au format date dans la base de donnée, et c'est bien a partir d'un formulaire.

merci

Avatar du membre
ViPHP
ViPHP | 3008 Messages

27 avr. 2006, 10:13

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 ?

julien75
Invité n'ayant pas de compte PHPfrance

27 avr. 2006, 10:14

exactement, je veux rentrer une date au format 27/05/2006 et que ça s'intègre en 2006-05-27

Avatar du membre
ViPHP
ViPHP | 3008 Messages

27 avr. 2006, 10:21

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.

julien75
Invité n'ayant pas de compte PHPfrance

27 avr. 2006, 10:27

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

Avatar du membre
ViPHP
ViPHP | 3008 Messages

27 avr. 2006, 10:33

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>

julien75
Invité n'ayant pas de compte PHPfrance

27 avr. 2006, 10:49

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");

Avatar du membre
ViPHP
ViPHP | 3008 Messages

27 avr. 2006, 10:52

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 ?

julien75
Invité n'ayant pas de compte PHPfrance

27 avr. 2006, 11:01

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.

Avatar du membre
ViPHP
ViPHP | 3008 Messages

27 avr. 2006, 11:03

C'est le lot des informaticiens les fautes d'inattention :langue:

Donc [Résolu] ? :)