Date mysql

Signaler
Messages postés
62
Date d'inscription
mercredi 29 août 2012
Statut
Membre
Dernière intervention
19 mai 2013
-
Messages postés
62
Date d'inscription
mercredi 29 août 2012
Statut
Membre
Dernière intervention
19 mai 2013
-
Bonjour à vous, Le script ci-dessous me sert à enregistre une date saisie en français dans BD mysql, mais sa ne marche pas.
Pouvez-vous me le corriger?
Merci d'avance.
<?php
$date_o_el = date("d/m/y");


if($action == "modif")
{
$date_o_el = $HTTP_POST_VARS["date_o_el"];


$date_o_el = strip_tags($date_o_el);


$db = mysql_connect($sql_host,$sql_user,$sql_pass);
mysql_select_db($sql_bdd,$db);
$sql = "UPDATE $tb_entreprise4 SET date_o_el='$date_o_el' WHERE login='demo'";
mysql_query($sql);
exit;


mysql_close($db);


}
?>

5 réponses

Messages postés
121
Date d'inscription
samedi 10 janvier 2004
Statut
Membre
Dernière intervention
1 décembre 2009

qu'est ce qui ne marche pas ????????????????
si c'est l'enregistrement dans la table, c'est peut-être le nom de la table qui n'est pas bon :
$tb_entreprise4 ça serait pas plutôt tb_entreprise4 (sauf si tu choisis la table selon la valeur de la variable $tb_entreprise4...)
précises...
Messages postés
62
Date d'inscription
mercredi 29 août 2012
Statut
Membre
Dernière intervention
19 mai 2013

Non, quand je saisi une date dans le formulaire, c'est en français et l'enregistrement mysql n'est pas en americain.
Je pense que j'utilise mal cette fonction:
$date_o_el = date("d/m/y");
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
22
Hello,

il va falloir que tu parses ta date, tu ne l'obtiendras pas aussi facilement au format americain :-)
Messages postés
121
Date d'inscription
samedi 10 janvier 2004
Statut
Membre
Dernière intervention
1 décembre 2009

utilise la fonction time() c'est mieux....
pour enregistrer la date lorsque tu récupère les valeurs du formulaire, tu convertis puis tu enregistre dans une table (si tu veux etre sur que mySQL ne fait rien tu mets type text) :
imaginons que tu récupère $jour, $mois, $an :

$date=mktime('00','00','00',$mois,$jour,$an); //enregistrement dans la variable date
//puis enregistrement dans la table :
mysql_query("INSERT INTO ma-table VALUES ('', '$date')");

plus d'info sur la fonction : mktime()

et lorsque tu veux lafficher tu peux par exemple utiliser une fonction séparer :

//tu mets tout en haut de ton code php :
require 'fonctions.php';

// quand tu veux convertir tu mets par exemple dans une requete :
$sql = "SELECT * FROM ma-table ORDER BY date DESC";
$req = mysql_query($sql) or die($error.'Erreur SQ!'.$sql.''.mysql_error());
while($data = mysql_fetch_array($req))
{
$date=convert_date($data['date']);
echo $date.'
';
}

et donc dans le fichier séparé tu mets cette fonction convert_date :

<?
function convert_date($date) {
$retour = getdate($date);
$jt= $retour["weekday"];
$j = $retour["mday"];
$m = $retour["mon"];
$a = $retour["year"];
$h = $retour["hours"];
$mi = $retour["minutes"];
$s = $retour["seconds"];
$z = "0";

if($jt=='Monday') { $jt2='lun.'; }
if($jt=='Tuesday') { $jt2='mar.'; }
if($jt=='Wednesday') { $jt2='mer.'; }
if($jt=='Thursday') { $jt2='jeu.'; }
if($jt=='Friday') { $jt2='ven.'; }
if($jt=='Saturday') { $jt2='sam.'; }
if($jt=='Sunday') { $jt2='dim.'; }

$j2 = ($j < 10)?$z.$j:$j;
$m2 = ($m < 10)?$z.$m:$m;
$h2 = ($h < 10)?$z.$h:$h;
$mi2 = ($mi < 10)?$z.$mi:$mi;
$s2 = ($s < 10)?$z.$s:$s;
$texte = $jt2.' '.$j2.'/'.$m2.'/'.$a.' à '.$h2.'H'.$mi2.'m'.$s2.'s';
return $texte;
}
?>

c'est un peu plus complexe mais bcp plus logique pour une machine de gérer ce genre de date...

ps : lorsque tu veux simplement enregistrer la date exacte du moment, tu mets tout simplement :
$date=time();
Messages postés
62
Date d'inscription
mercredi 29 août 2012
Statut
Membre
Dernière intervention
19 mai 2013

Ouf, j'y suis arrivé.
Merci pour ton aide.