Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2400 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  récupérer un date via formulaire et l'insérer ds champ date [RESOLU]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

récupérer un date via formulaire et l'insérer ds champ date [RESOLU]

n°1292067
flock86
oh non les gars pas le slip!
Posté le 25-01-2006 à 16:46:14  profilanswer
 

Bonjour à tous!
 
désolé de poser une question de débutant, mais en fouinant j'ai pas trouvé de solution à mon problème, qui est le suivant :  
 
je souhaite récupérer une date via un formulaire. elle est sous la forme de 3 variables : $jour $mois $année.
je concatène ensuite ces $_POST['annee'], $_POST['mois'], $_POST['jour'] avec des "-"  afin d'obtenir une nouvelle variable, qui est de la même forme que le champs date de mysql, à savoir 0000-00-00.
 
je tente d'insérer cette nouvelle variable dans le champ date de ma BDD.
 
et là je n'ai aucune erreur de la part d'sql, mais quand j'affiche le contenu de ce champ, j'obtiens invariablement la réponse : 0000-00-00, la valeur par défaut, ce qui me prouve que ma variable n'a pas été intégrée.
 
je me doute qu'il ne suffit pas d'écrire une variable de la forme 1234-56-78 pour qu'elle soit reconnue comme une date. mais comment faire pour qu'elle soit reconnue comme une date?
 
je connais un peu la fonction date(). c'est sur que c'est super pour récupérer la date à l'instant présent. mais là elle est imposée par un formulaire...
 
vous voyez mon problème?
j'imagine que je suis pas le premier à me retrouver confronté à cette situation...
 
alors si vous avez des suggestions, des tutos qui reprennent exactement ce problème...
je vous remercie d'avance!!!


Message édité par flock86 le 26-01-2006 à 14:20:42
mood
Publicité
Posté le 25-01-2006 à 16:46:14  profilanswer
 

n°1292113
omega2
Posté le 25-01-2006 à 17:18:46  profilanswer
 

C'est quoi le type de colone?
C'est quoi la requette type qui est envoyé à mysql? Fait un echo de la requette pour être de nous montrer ce qui est vraiment envoyé.
T'as pensé à mettre des " autour de la date?

n°1292119
flock86
oh non les gars pas le slip!
Posté le 25-01-2006 à 17:24:17  profilanswer
 

bon je vous envoie la page complete de mon code, tout y est :
 
 
<?php
//connexion à la BDD
mysql_connect("localhost", "root", "" );
mysql_select_db("bddessai1" );  
 
//récupération de la date déjà dans la base pour la mettre ailleurs plus tard
$recupdate = mysql_query ('SELECT Date_expiration FROM tablessai1 WHERE Identifiant="'.$_POST['id'].'"') or die(mysql_error());
 
//définition de la variable compatible avec le format date de mysql
$bonnedate=$_POST['an'] . '-' . $_POST['mois'] . '-' . $_POST['jour'];
//test de la  date
echo $bonnedate;
 
if (isset ($_POST['Jour'])AND isset($_POST['mois']) AND isset( $_POST['annee']))
{
//le visiteur vient de rentrer les données
//elles doivent rentrer dans la BDD à date d'expiration en fonction de l'identifiant
 
//la variable $bonnedate remplacera l'élément dans la case date_expiration pour l'identifiant donné
$requete1 = mysql_query ('UPDATE tablessai1 SET Date_expiration=$bonnedate WHERE Identifiant="'.$_POST['id'].'"') or die(mysql_error());
 
 
 
}
else // si le visiteur n'a pas rentré la date, on affiche le formulaire
{
?>
<p>Indiquez la date d'expiration (jj/mm/aaaa) :</p>
 
<form method="post" action="essaidate.php">
<p>
 <input type="text" name="id" />  
    <input type="text" name="jour" size="2" maxlength="2" />  
    <input type="text" name="mois" size="2" maxlength="2" />  
    <input type="text" name="an" size="4" maxlength="4" /><br /><br />
    <input type="submit" value="Envoyer" />
</p>
</form>
<?
}
//test de l'affichage de la nouvelle date rentrée
$requete2 = mysql_query ('SELECT Date_expiration FROM tablessai1 WHERE Identifiant="'.$_POST['id'].'"') or die(mysql_error());
while ($donnees = mysql_fetch_array($requete2) )
{
 echo $donnees['Date_expiration']; //et là j'ai la date 0000-00-00 d'origine, qui n'est pas modifiée GRRRR
}
mysql_close();
?>
 
 
soyez indulgents je suis une bille qui transpire quand elle tape du code !
 
le type de colone je vois pas trop ce que tu veux dire : la colonne dans mysql est de type date.
 
 
merci de vous pencher sur la question, ça réchauffe le coeur!


Message édité par flock86 le 25-01-2006 à 17:26:58
n°1292125
omega2
Posté le 25-01-2006 à 17:29:15  profilanswer
 

Rajoute un " avant et aprés $bonnedate dans ta requette SQL, ca ira mieux comme ça vu que ce que tu veux lui envoyer, c'est une date sous forme de texte, par une soustraction.
Et en passant, sort là de la requette tout comem t'as fait pour $_POST['id'] sinon c'est le texte "$bonnedate" que t'envéras et pas le contenu de la variable $bonnedate.
 
Si t'avais fait un echo de la requette, t'aurais compris dessuite une des deux erreurs. D'ailleur je suis étoné que mysql n'ai pas retourné de message d'erreur.

n°1292129
flock86
oh non les gars pas le slip!
Posté le 25-01-2006 à 17:32:08  profilanswer
 

ok merci !! je vais faire un essai de suite!
 

n°1292136
flock86
oh non les gars pas le slip!
Posté le 25-01-2006 à 17:40:51  profilanswer
 

flock86 a écrit :

ok merci !! je vais faire un essai de suite!


 
bon j'ai essayé et ça n'a pas l'air de fonctionner. je récupère toujours 0000-00-00 quand je fais ma dernière requete sql.
 
voici ce que j'ai modifié  à la ligne 20 :  
 
$requete1 = mysql_query ('UPDATE tablessai1 SET Date_expiration="'.$bonnedate.'" WHERE Identifiant="'.$_POST['id'].'"') or die(mysql_error());  
 
peut-être n'ais-je pas tout compris dans les conseils prodigués?

n°1292152
omega2
Posté le 25-01-2006 à 18:08:28  profilanswer
 

rajoute un

Citation :

echo 'UPDATE tablessai1 SET Date_expiration="'.$bonnedate.'" WHERE Identifiant="'.$_POST['id'].'"'


Tu pouras voir si ta requette contient bien les données que t'espéres.

n°1292414
flock86
oh non les gars pas le slip!
Posté le 26-01-2006 à 09:26:06  profilanswer
 

omega2 a écrit :

rajoute un

Citation :

echo 'UPDATE tablessai1 SET Date_expiration="'.$bonnedate.'" WHERE Identifiant="'.$_POST['id'].'"'


Tu pouras voir si ta requette contient bien les données que t'espéres.


 
ok merci!
j'execute :  
 
ça ne m'affiche rien de plus ni données ni erreurs...  
 
voici mon code :  
 
<?php
//connexion à la BDD
mysql_connect("localhost", "root", "" );
mysql_select_db("bddessai1" );  
 
//récupération de la date déjà dans la base pour la mettre ailleurs plus tard
$recupdate = mysql_query ('SELECT Date_expiration FROM tablessai1 WHERE Identifiant="'.$_POST['id'].'"') or die(mysql_error());
 
//définition de la variable compatible avec le format date de mysql
$bonnedate=$_POST['an'] . '-' . $_POST['mois'] . '-' . $_POST['jour'];
//test de la récupération des dates via le formulaire
echo $bonnedate;
 
if (isset ($_POST['Jour'])AND isset($_POST['mois']) AND isset( $_POST['annee']))
{
//le visiteur vient de rentrer les données
//elles doivent rentrer dans la BDD à date d'expiration en fonction de l'identifiant
 
//la variable $bonnedate remplacera l'élément dans la case date_expiration pour l'identifiant donné
$requete1 = mysql_query ('UPDATE tablessai1 SET Date_expiration="'.$bonnedate.'" WHERE Identifiant="'.$_POST['id'].'"') or die(mysql_error());  
echo 'UPDATE tablessai1 SET Date_expiration="'.$bonnedate.'" WHERE Identifiant="'.$_POST['id'].'"';
 
 
 
 
}
else // si le visiteur n'a pas rentré la date, on affiche le formulaire
{
?>
<p>Indiquez la date d'expiration (jj/mm/aaaa) :</p>
 
<form method="post" action="essaidate.php">
<p>
 <input type="text" name="id" />  
    <input type="text" name="jour" size="2" maxlength="2" />  
    <input type="text" name="mois" size="2" maxlength="2" />  
    <input type="text" name="an" size="4" maxlength="4" /><br /><br />
    <input type="submit" value="Envoyer" />
</p>
</form>
<?
}
//test de l'affichage de la nouvelle date rentrée
$requete2 = mysql_query ('SELECT Date_expiration FROM tablessai1 WHERE Identifiant="'.$_POST['id'].'"') or die(mysql_error());
while ($donnees = mysql_fetch_array($requete2) )
{
 echo $donnees['Date_expiration']; //et là j'ai la date 0000-00-00 d'origine, qui n'est pas modifiée GRRRR
}
mysql_close();
?>

n°1292491
omega2
Posté le 26-01-2006 à 11:12:35  profilanswer
 

Par hasard, il te réafficherait pas le formulaire? (passage dans le "else" )
 
Et je viens de réaliser un truc, t'envoie et t'utilises $_POST['an'] mais tu testes l'existance de $_POST['annee']. Y aurait pas une erreur par là?

n°1292500
flock86
oh non les gars pas le slip!
Posté le 26-01-2006 à 11:25:32  profilanswer
 

ouaaahhh!  
ben si il me réaffiche le formulaire! (???)  
 
et oui désolé pour cette faute à la c** pour ['an'] et ['annee'] j'ai honte!  
 
je vérifie ça...
 
bon y'a vraiment un truc qui va toujours pas...
en mettant ['an'] normalement, il devrait alors considérer que ma variable est bien créée (en plus je l'affiche et ça marche) donc il ne devrait pas continuer jusqu'au else.
donc je ne devrais pas voir mon formulaire!!
rhaaa!!
bo'del de me'de!!
 :fou:
 
[après un bon repas]
 
ça y est je pense que ça marche!!
encore une fois je mérite des baffes!!!!
nom formulaire = Jour
nom dans $bonnedate = $jour...
 
j'ai fait un echo de l'insertion de ma variable $bonnedate et ça marche, comme tu me l'avais conseillé!!
En plus, elle est bien reconnue en tant que telle, car si j'envoie des caractères non numérique ça devient 0000-00-00.
 
bon ben je pensais qu'il était nécessaire de déclarer une variable au format date pour la traiter avec  sql ensuite, mais apparemment une série de chiffres est directement reconnu comme tel...
 
COOL!!!
 
merci omega2, grâce à toi j'ai compris comment repérer mes erreurs!! :jap:  
 
 
 
 


Message édité par flock86 le 26-01-2006 à 14:18:09

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  récupérer un date via formulaire et l'insérer ds champ date [RESOLU]

 

Sujets relatifs
[Résolu]Récupérer la valeur d'un radiobuttonOutils grisé mais fonctionnel ! [Résolu]
[Résolu]pb d'execution de programme[PHP] interdire du code dans un formulaire: strip_tags()
[Batch] Trier fichier par dateRécupérer des imbrications multiples dans une table MySQL
fichier avec dateExtraire date creation d'un fichier en PHP
Problème pour récupérer donnée en php 
Plus de sujets relatifs à : récupérer un date via formulaire et l'insérer ds champ date [RESOLU]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR