IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Date et heure remis automatiquement à zéro sous Mysql [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 94
    Points : 46
    Points
    46
    Par défaut Date et heure remis automatiquement à zéro sous Mysql
    Bonjour à tous,

    Comme à chaque fois que j'ai posé un problème on a su me répondre() , je récidive avec un problème un peu plus complexe(pour moi )

    Il s'agit d'un formulaire(3 en fait) permettant de modifier une conférence dans ma BD Mysql.
    Le premier demande l'identifiant de la conférence , et propose de cocher au moins un champs à modifier(sous forme de Checkbox).
    Le deuxième récupère l'identifiant , et vérifie si un champs est coché ou pas , si c'est le cas alors il affiche une zone de texte(ou une liste déroulante) pour taper la nouvelle valeur.Jusqu'ici tout marche très bien.

    Le problème , c'est que quand je demande à modifier le titre ou lieu d'une conférence par exemple, il me modifie automatiquement la date t l'heure dans ma BD en les mettant à zéro.

    idConf sujet date heure
    9 testdate 0000-00-00 00:00:00



    2emme formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if(isset($_POST['date'])){
    print"<tr>";
    		    print"<td><strong>Date </strong></td>";
    			print"<td>";
    			print"<select name='jour'>";
    		print"<option selected='selected'>Jour</option>";
     
     .... etc


    Dernier formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(!empty($date))
    	 {
    		mysql_query("UPDATE conference SET date='$date' WHERE idConf='$id'");

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Comment construis-tu $date ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 94
    Points : 46
    Points
    46
    Par défaut
    Des listes déroulantes pour jour,mois , année.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    if(isset($_POST['date'])){
    print"<tr>";
    		    print"<td><strong>Date </strong></td>";
    			print"<td>";
    			print"<select name='jour'>";
    		print"<option selected='selected'>Jour</option>";
     
    		for($i=1;$i<=31;$i++){
    		 print "<option label=$i value=$i>$i</option>";
    			}
    		 print"</select>";
     
     
     
     
     
    		print"<select name='mois' >";
    		print"<option selected='selected'>Mois</option>";
    		print"<option label='1' value='1'>Janvier</option>";
    		print"<option label='2' value='2'>Février</option>";
    		print"<option label='3' value='3'>Mars </option>";
    		print"<option label='4' value='4'>Avril</option>";			
    		print"<option label='5' value='5'>Mai </option>";
    		print"<option label='6' value='6'>Juin</option>";
    		print"<option label='7' value='7'>Juillet</option>";
    		print"<option label='8' value='8'>Août</option>";
    		print"<option label='9' value='9'>Septembre</option>";
    		print"<option label='10' value='10'>Octobre</option>";
    		print"<option label='11' value='11'>Novembre</option>";
    		print"<option label='12' value='12'>Décembre</option>";
    		print"</select>";
     
     
     
     
    		print"<select name='année'>";
    		print"<option selected='selected'>Année</option>";
     
    		for($i=2009;$i<=2020;$i++){
    			print "<option label=$i value=$i>$i</option>";
    			}
    			print"</select>";
    			print"</tr>";
     
    						 }

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Certes mais $date ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 94
    Points : 46
    Points
    46
    Par défaut
    2emme formulaire pour savoir si le champs date a été coché :
    je recupere
    Dernier formulaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $date=$_POST['année']."-".$_POST['mois']."-".$_POST['jour'];

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    C'est normal l'accent sur "année" ?
    Est-ce que tu as fait un echo de cette date pour voir si elle etait correcte ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 94
    Points : 46
    Points
    46
    Par défaut
    Oui pour année c'est normal , je l'ai nommé comme ça aussi dans le formulaire. je viens de tester avec Echo($date) dans le deuxieme formulaire , il m'affiche bien la date de la conference, puis quand je modifie le sujet et je clique , donc j'arrive au dernier formulaire qui modifie ma bd , l'echo me renvoei que des 0 pour la date.je pense que ça vient du deuxieme formulaire , mais je comprend pas pourquoi des zero , alors qu'avec cette condition
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(!empty($date))
    	 {
    		mysql_query("UPDATE conference SET date='$date' WHERE idConf='$id'");
    je vérifie bien que la date n'est pas nulle , c'est bien ça le travail du empty non??

    ça vient peut être de la structure de ma table?
    Champ ..... Type .....Interclassement .....Attributs ..... Null
    heure ..........time ...............................................................Non
    date..........date ......................................... .......................Non

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    affiche ta requete finale :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $sql = "UPDATE conference SET date='$date' WHERE idConf='$id'";
    echo $sql;
    mysql_query($sql);
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 94
    Points : 46
    Points
    46
    Par défaut
    UPDATE conference SET date='--' WHERE idConf='9'

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 94
    Points : 46
    Points
    46
    Par défaut
    voila ce que ça donne pour la date t l'heure dans le dernier formulaire:

    UPDATE conference SET date='--' WHERE idConf='9'UPDATE conference SET heure='::' WHERE idConf='9'

  11. #11
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu n'as plus qu'a remonter la chaine de ton $date pour voir ou elle disparait.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 94
    Points : 46
    Points
    46
    Par défaut
    je pense que c'est au debut du dernier fichier quand je fais ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $date=$_POST['année']."-".$_POST['mois']."-".$_POST['jour'];
    Même s'il y a rien $date="--".

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 94
    Points : 46
    Points
    46
    Par défaut
    Je pense avoir trouvé ou ça deconne .
    En mettant ce code avant tout le reste , j'obtiens ce résultat :
    UPDATE conference SET date='' WHERE idConf='9'.
    On voit bien que date ne contient rien , ce qui est normal car je ne l'ai pas selectioné.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $sql= "UPDATE conference SET date='$date' WHERE idConf='$id'";
    	echo $sql;
    	mysql_query($sql);

    Donc c'est en dessous qu'il est modifié :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $date=$_POST['année']."-".$_POST['mois']."-".$_POST['jour'];
    Il met $date="--" même quand c'est vide.
    Mais je suis bien obligé de faire ça pour récupérer la date et l'heure. T'a pas une idée de comment je pourrais evitr ça?

  14. #14
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    page 1 - tu selectionnes "date"
    page 2 - tu choisis année, mois et jour
    page 3 - si tu recois bien année, mois et jour, tu fais l'update
    tu peux meme utiliser la fonction checkdate() pour vérifier que ton trio composent une date valide.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 94
    Points : 46
    Points
    46
    Par défaut
    Oui c'est exactement ce que je fais, seulement à la page 3 , en récupérant la date et l'heure je leur ajoute respectivement "-" et ":" , donc elle ne sont jamais "vide". Je vais essayer avec checkdate().

  16. #16
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Je n'ai pas dis
    - assemble annee, mois et jour et verifie
    j'ai dis
    - verifie annee, mois et jour et assemble
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 94
    Points : 46
    Points
    46
    Par défaut
    C'est bon ça marche , j'ai récupérer les champs un par un , et dans le if je vérifie s'ils sont pas vide , si c'est le cas , je concaténe les chaines pour former $date et $heure avant de faire mon Update.

    Merci bcp pour l'aide, le projet est enfin FINI!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Date et heure actualisés automatiquement
    Par alkashy dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 12/01/2007, 10h36
  2. [MySQL] utilisation de champs date et heure
    Par ultracoxy dans le forum JDBC
    Réponses: 10
    Dernier message: 29/06/2006, 13h49
  3. Affectation automatique de valeurs sous MySQL?
    Par tttttt dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 23/06/2006, 09h32
  4. [Dates] date et heure incrementé automatiquement
    Par xtiand4 dans le forum Langage
    Réponses: 5
    Dernier message: 15/06/2006, 12h24
  5. probleme date et heure avec mysql.
    Par argon dans le forum Langage SQL
    Réponses: 1
    Dernier message: 11/07/2005, 22h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo