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

Langage PHP Discussion :

probleme insertion date avec php et mysql


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2012
    Messages : 59
    Points : 41
    Points
    41
    Par défaut probleme insertion date avec php et mysql
    bonjour,
    je suis debutant en php
    j'ai un probleme avec la gestion de dates avec la base de données
    meme si le inputtext de l date est rempli j'ai dans la base de données : le champs est vide

    voila la page php :
    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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    <?php
    session_start();
    if (!array_key_exists("user", $_SESSION)) {
        header('Location: index.php');
        exit;
    }
    require_once("Includes/db.php");
    $wisherID = WishDB::getInstance()->get_wisher_id_by_name($_SESSION['user']);
     
    $wishDescriptionIsEmpty = false;
    if ($_SERVER['REQUEST_METHOD'] == "POST") {
        if (array_key_exists("back", $_POST)) {
            header('Location: editWishList.php');
            exit;
        } else
        if ($_POST['wish'] == "") {
            $wishDescriptionIsEmpty = true;
        } else if ($_POST["wishID"] == "") {
            WishDB::getInstance()->insert_wish($wisherID, $_POST["wish"], $_POST["dueDate"]);
            header('Location: editWishList.php');
            exit;
        } else if ($_POST["wishID"] != "") {
            WishDB::getInstance()->update_wish($_POST["wishID"], $_POST["wish"], $_POST["dueDate"]);
            header('Location: editWishList.php');
            exit;
        }
    }
    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
        <head>	
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <link type="text/css" href="jquery-ui-1.8.24.custom/css/smoothness/jquery-ui-1.8.24.custom.css" rel="stylesheet" />
    		<script type="text/javascript" src="jquery-ui-1.8.24.custom/js/jquery-1.8.0.min.js"></script>
    		<script type="text/javascript" src="jquery-ui-1.8.24.custom/js/jquery-ui-1.8.24.custom.min.js"></script>
    		<script type="text/javascript" src="jquery-ui-1.8.24.custom\development-bundle\ui\i18n\jquery.ui.datepicker-fr.js"></script>
    		<script type="text/javascript">
    			$(function() {
    		$.datepicker.setDefaults( $.datepicker.regional[ "" ] );
    		$( "#datepicker" ).datepicker( $.datepicker.regional[ "fr" ] );
     
    	});			
    		</script>
        </head>
        <body>
            <?php
            if ($_SERVER["REQUEST_METHOD"] == "POST")
                $wish = array("id" => $_POST["wishID"], "description" => $_POST["wish"], "due_date" => $_POST["dueDate"]);
            else
            if (array_key_exists("wishID", $_GET))
                $wish = mysqli_fetch_array(WishDB::getInstance()->get_wish_by_wish_id($_GET["wishID"]));
            else
                $wish = array("id" => "", "description" => "", "due_date" => "");
            ?>
            <form name="editWish" action="editWish.php" method="POST">
                <input type="hidden" name="wishID" value="<?php echo $wish["id"]; ?>" />
                <table>
                    <tr>
                        <td>Describe your wish:</td>
                        <td><input type="text" name="wish"  value="<?php echo $wish['description']; ?>" /></td>
                        <td><?php if ($wishDescriptionIsEmpty) echo "Please enter description"; ?></td>
                    </tr>
                    <tr>
                        <td>When do you want to get it?</td>
     
    					<td><input type="text" name="due_date" id="datepicker" value="<?php echo $wish['due_date']; ?>" /></td>
                    </tr>                
                </table>
                <input type="submit" name="saveWish" value="Save Changes"/>
                <input type="submit" name="back" value="Back to the List"/>
     
            </form>
    		je suis 
    		</br>
     
        </body>
    </html>
    et voila les methodes de modification et insertion de date dans le fichier db.php :
    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
    function insert_wish($wisherID, $description, $dueDate) {
            $description = $this->real_escape_string($description);
            if ($duedate == '') {
                $this->query("INSERT INTO wishes (wisher_id, description)" .
                        " VALUES (" . $wisherID . ", '" . $description . "')");
            } else
                $this->query("INSERT INTO wishes (wisher_id, description, due_date)" .
                        " VALUES (" . $wisherID . ", '" . $description . "', '" . $dueDate . "')");
        }    
     
        public function update_wish($wishID, $description, $duedate) {
            $description = $this->real_escape_string($description);
            if ($duedate == null) {
                $this->query("UPDATE wishes SET description = '" . $description . "', due_date = NULL WHERE id = " . $wishID);
            } else
                $this->query("UPDATE wishes SET description = '" . $description . "', due_date = '" . $duedate . "' WHERE id = " . $wishID);
        }
    pouvez vous me detectez l'erreur :
    merci bien

  2. #2
    Inactif
    Profil pro
    Inscrit en
    Octobre 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Salut,

    C'est peut etre une faute de frappe, de casse:

    $dueDate au lieu de $duedate dans la function insert_wish() (inversement)

    En ésperant que ca t'aide
    @+


    PS: cette erreur aurai pu être détecté plus tôt en configurant php en mode développement: C'est a dire en utilisant les directives error_reporting à E_ALL, display_errors à true (entre autre)

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2012
    Messages : 59
    Points : 41
    Points
    41
    Par défaut
    j'ai testé mais pas de changement

  4. #4
    Inactif
    Profil pro
    Inscrit en
    Octobre 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Y'a aussi ca :
    <input type="text" name="due_date"> -
    Alors que tu utilise $_POST["dueDate"]
    @ tte


    PS : je prend l'apéro, pas sur quand dans une heure je voi encore très claire

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2012
    Messages : 59
    Points : 41
    Points
    41
    Par défaut
    celle ci je l'ai déja corrigé mais c'est pas ca le probleme je pense que le type date de mysql n'accepte la date qu'au format anglais
    n'est ce pas ?
    mais si c'est le cas comment je dois regler le probleme

  6. #6
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    en MySQL les dates doivent être de la forme AAAA-MM-JJ HH:MM:SS -

    Ton datepicker, il te la renvoie sous quel format ?

  7. #7
    Inactif
    Profil pro
    Inscrit en
    Octobre 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Je porte bien mon pseudo tiens ....

    tu peu résoudre ton probleme en allant lire ou relire les regles du forum.

    ABS

  8. #8
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2012
    Messages : 59
    Points : 41
    Points
    41
    Par défaut
    je m'exuse si je t'ai touché @Jamais203
    mais je ne l'ai pas fais expré
    @rawsrc, mon datepicker me renvoie : 06/10/2012
    et je veux la conserver dans un champ Date de la base de données

  9. #9
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Citation Envoyé par fou-jea Voir le message
    mon datepicker me renvoie : 06/10/2012
    ça m'aide pas beaucoup : 6 octobre ou 10 juin ?

  10. #10
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2012
    Messages : 59
    Points : 41
    Points
    41
    Par défaut
    ça m'aide pas beaucoup : 6 octobre ou 10 juin ?
    6 octobre car j'ai configué la datepicker en fr

  11. #11
    Inactif
    Profil pro
    Inscrit en
    Octobre 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    http://www.developpez.net/forums/d11...mat-y-m-d-php/

    Donc :
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $tabDate = explode('/' , $due_date);
    $date_sql  = $tabDate[2].'-'.$tabDate[1].'-'.$tabDate[0]

  12. #12
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Je considère que tu travailles sous PHP 5.3+
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    $date      = DateTime::createFromFormat('d/m/Y', $_POST['due_date']);
    $for_mysql = $date->format('Y-m-d');
    ?>

  13. #13
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    @Jamais203
    PHP offre nativement tous les outils nécessaires pour manipuler les dates. Il faut arrêter de les cuisiner.

    Avec ta méthode utilisant explode(), tu la valide comment ? En rajoutant encore une recette de cuisine ?
    Avec DateTime::createFromFormat() tu récupères tout simplement false si la date est invalide.

  14. #14
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2012
    Messages : 59
    Points : 41
    Points
    41
    Par défaut
    merci @rawsrc
    c'est exactement ce que tu m'a donné :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    $date      = DateTime::createFromFormat('d/m/Y', $_POST['due_date']);
    $for_mysql = $date->format('Y-m-d');
    ?>

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

Discussions similaires

  1. [WD15] probleme insert into avec mysql et date?
    Par 3alit dans le forum WinDev
    Réponses: 6
    Dernier message: 21/11/2013, 19h59
  2. [MySQL] Probleme de caractéres avec php et mysql
    Par rane dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 21/05/2010, 13h42
  3. Probleme insertion date avec un champ datetime
    Par locs dans le forum MS SQL Server
    Réponses: 24
    Dernier message: 24/09/2006, 12h19
  4. probleme avec php et mysql
    Par rane dans le forum Requêtes
    Réponses: 3
    Dernier message: 01/06/2006, 18h26
  5. [SGBD] Probleme Avec Php et Mysql
    Par junior258 dans le forum Installation
    Réponses: 2
    Dernier message: 20/09/2005, 10h39

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