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 :

Convertir un champ DATE en Francais


Sujet :

PHP & Base de données

  1. #1
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Points : 279
    Points
    279
    Par défaut Convertir un champ DATE en Francais
    Bonsoir j'ai un champ date dans le quel je rentre une date au format francais dd/mm/aaaa ,
    mais lorsque j'affiche la date sur ma page il me l'affiche au format anglais aaaa/mm/dd, donc la date rentré n'est pas correct et il m'affiche n'importe quoi.

    Donc ma question est comment faire pour que mon champ date à partir dur format francais le transforme en anglais ???

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2007
    Messages : 291
    Points : 217
    Points
    217
    Par défaut
    Bonjour,

    pour transformer tes dates tu peux utiliser la fonction explode() avec comme charactere de séparation / ce qui te renvoie un tableau de trois cases contenant le jour, le mois et l'année. Ensuite, à toi de les reconcaténer en anglais ou autre!

    N'hésites pas à poster du code !

  3. #3
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    MySQL prévoit la fonction STR_TO_DATE (exemple dans la FAQ), ce qui permet d'aisément réaliser l'opération.

  4. #4
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Points : 279
    Points
    279
    Par défaut
    voila j'ai trouvé ceci sur la FAQ : (ca m'a l'air d'être ce que j'ai besoin)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $date = '23/12/2006';
    $sql = mysql_query("INSERT INTO ma_table SET mon_champ_date = STR_TO_DATE('$date', '%d/%m/%Y'), ...");

    mais voici mon code dans ma page, mais je sais pas ou mettre le code ci dessus ???

    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
    // Vérification 1 : est-ce qu'on veut poster une news ?
    //-----------------------------------------------------
    if (isset($_POST['personne']) AND isset ($_POST['epreuve'])AND isset ($_POST['score'])AND isset ($_POST['date'])AND isset ($_POST['moniteur']))
    {
        $personne = addslashes($_POST['personne']);
        $epreuve = addslashes($_POST['epreuve']);
        $score = addslashes($_POST['score']);
        $date = addslashes($_POST['date']);
        $moniteur = addslashes($_POST['moniteur']);
     
        // On vérifie si c'est une modification de personnel ou pas
        if ($_POST['id_registre'] == 0)
        {
            // Ce n'est pas une modification, on crée une nouvelle entrée dans la table
     
    		mysql_query("INSERT INTO regsitre VALUES('', '" . $personne . "', '" . $epreuve . "', '" . $score . "', '" . $date . "', '" . $moniteur . "')");
        }

  5. #5
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query("INSERT INTO regsitre VALUES('', '" . $personne . "', '" . $epreuve . "', '" . $score . "', STR_TO_DATE('$date', '%d/%m/%Y'), '" . $moniteur . "')") or die(mysql_error());


    Mais n'utilisez pas addslashes, préférez mysql_real_escape_string

  6. #6
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Points : 279
    Points
    279
    Par défaut
    merci pour votre aide, j'ai inséré le code tel quelle mais la l'enregistrement dans la table ne s'effectue pas du tous !!! bizarre

  7. #7
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Points : 279
    Points
    279
    Par défaut
    quelqu'un pour m'aider s'il vous plait !!!!

    j'ai pensé a utiliser ce code trouver dans le FAQ

    http://php.developpez.com/faq/?page=dates#date_fr2en

    mais comment l'utiliser avec mon code à moi ???

  8. #8
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    "Ça ne marche pas" c'est vague pour vous aider et vous n'y mettez pas du votre pour que nous ayons matière à vous assister : quelle est l'erreur ? Quelle est la requête générée ?

  9. #9
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Points : 279
    Points
    279
    Par défaut
    donc aucune donné qui s'enregsitre, revoici mon code actuel (qui lorsque je rentre la date au format anglais fonctionne) et donc je voudrais rentrer la date au format francais et qu'elle s'enregistre au format anglais.

    voici ma page qui affiche les données (ici pas de soucis je l'affiche quand meme car c'est cette page qui contient la requete insert) :

    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
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    <?php
     
     
    function datefr2en($date){
       @list($jour,$mois,$annee)=explode('/',$date);
       return @date('Y-m-d',mktime(0,0,0,$mois,$jour,$annee));
    }
     
    mysql_connect("localhost", "root", "");
    mysql_select_db("test");
    //-----------------------------------------------------
    // Vérification 1 : est-ce qu'on veut poster une news ?
    //-----------------------------------------------------
    if (isset($_POST['personne']) AND isset ($_POST['epreuve'])AND isset ($_POST['score'])AND isset ($_POST['date'])AND isset ($_POST['moniteur']))
    {
        $personne = addslashes($_POST['personne']);
        $epreuve = addslashes($_POST['epreuve']);
        $score = addslashes($_POST['score']);
        $date = addslashes($_POST['date']);
        $moniteur = addslashes($_POST['moniteur']);
     
        // On vérifie si c'est une modification de personnel ou pas
        if ($_POST['id_registre'] == 0)
        {
            // Ce n'est pas une modification, on crée une nouvelle entrée dans la table
     
    		mysql_query("INSERT INTO regsitre VALUES('', '" . $personne . "', '" . $epreuve . "', '" . $score . "', '" . $date . "', '" . $moniteur . "')");
        }
        else
        {
            // On protège la variable "id" pour éviter une faille SQL
            $_POST['id_regsitre'] = addslashes($_POST['id_regsitre']);
            // C'est une modification, on met juste à jour le centre et le matricule et le grade
            mysql_query("UPDATE regsitre SET personne='" . $personne . "', epreuve='" . $epreuve . "', score='" . $score . "', date= STR_TO_DATE('$date', '%d/%m/%Y'), moniteur='" . $moniteur . "' WHERE id='" . $_POST['id_regsitre'] . "'");
        }
    }
     
    //--------------------------------------------------------
    // Vérification 2 : est-ce qu'on veut supprimer une news ?
    //--------------------------------------------------------
    if (isset($_GET['supprimer_news'])) // Si on demande de supprimer une news
    {
        // Alors on supprime la news correspondante
        // On protège la variable "id_news" pour éviter une faille SQL
        $_GET['supprimer_news'] = addslashes($_GET['supprimer_news']);
        mysql_query('DELETE FROM regsitre WHERE id=\'' . $_GET['supprimer_news'] . '\'');
    }
     
     $date = date("d-m-Y");
    ?>
    <table><tr bgcolor="#FFCC66">
    <th>Supprimer</th>
    <th>Personne</th>
    <th>Epreuve</th>
    <th>Score</th>
    <th>Date</th>
    <th>Evaluateur</th>
    </tr>
    <?php
    $indice = 0;
    $retour = mysql_query('SELECT *, DATE_FORMAT(date, "%d/%m/%Y") AS date_fr  FROM regsitre ORDER BY date DESC');
    while ($donnees = mysql_fetch_array($retour)) 
    {
    	$reste = $indice % 2;
    if($reste == 0)
         {
     
    ?>
    <tr bgcolor="#FFFFFF">
    <td><?php echo '<a href="liste_REGISTRE.php?supprimer_news=' . $donnees['id'] . '">'; ?><img src="button_drop.png"></a></td>
    <td><?php echo stripslashes($donnees['personne']); ?></td>
    <td><?php echo stripslashes($donnees['epreuve']); ?></td>
    <td><?php echo stripslashes($donnees['score']); ?></td>
    <td><?php echo stripslashes($donnees['date_fr']); ?></td>
    <td><?php echo stripslashes($donnees['moniteur']); ?></td>
    </tr>
    <?
    }
    else
         {
         ?>
    <tr bgcolor="#99CC99">
    <td><?php echo '<a href="liste_REGISTRE.php?supprimer_news=' . $donnees['id'] . '">'; ?><img src="button_drop.png"></a></td>
    <td><?php echo stripslashes($donnees['personne']); ?></td>
    <td><?php echo stripslashes($donnees['epreuve']); ?></td>
    <td><?php echo stripslashes($donnees['score']); ?></td>
    <td><?php echo stripslashes($donnees['date_fr']); ?></td>
    <td><?php echo stripslashes($donnees['moniteur']); ?></td>
    </tr>
    <?
         }
    $indice++;
    } // Fin de la boucle qui liste les news
    ?>     
    </table>
    </body>
    </html>

    et voici ma page qui contient le formulaire avec le champ date :

    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
    <?php
     
     
    mysql_connect("localhost", "root", "");
    mysql_select_db("test");
    if (isset($_GET['modifier_news'])) // Si on demande de modifier une personne
    {
        // On protège la variable "modifier_news" pour éviter une faille SQL
        $_GET['modifier_news'] = mysql_real_escape_string(htmlspecialchars($_GET['modifier_news']));
        // On récupère les infos de la correspondante
        $retour = mysql_query('SELECT * FROM regsitre WHERE id=\'' . $_GET['modifier_news'] . '\'');
        $donnees = mysql_fetch_array($retour);
     
        // On place le centre et le matricule dans des variables simples
        $personne = stripslashes($donnees['personne']);
        $epreuve = stripslashes($donnees['epreuve']);
        $score = stripslashes($donnees['score']);
        $date = stripslashes($donnees['date']);
        $moniteur = stripslashes($donnees['moniteur']);
        $id_registre = $donnees['id']; // Cette variable va servir pour se souvenir que c'est une modification
    }
    else // C'est qu'on rentre une nouvelle personne
    {
        // Les variables $centre et $matricule sont vides, puisque c'est une nouvelle news
        $personne = '';
        $epreuve = '';
        $score = '';
        $date = '';
        $moniteur = '';
        $id_registre = 0; // La variable vaut 0, donc on se souviendra que ce n'est pas une modification
    }
     
    ?>
    <form action="liste_REGISTRE.php" method="post">
    <p>Personne : <select name="personne">
    <?
    $SQL = "SELECT * FROM news ORDER BY nom";
    $res = mysql_query($SQL);
    while($val=mysql_fetch_array($res)) {
       echo "<option>".($val["nom"]) .' '. ($val["prenom"])."</option>\n";
    }
    ?>
       </select></p>
    </select></p>  
     
    <p>Epreuve : <select name="epreuve">
    <option></option>
    <option>Killy</option>
    <option>Pompes</option>
    <option>Souplesse</option>
    <option>Tractions</option>
    <option>Gainage</option>
    <option>Luc Leger</option>
    </select></p>
    <p>Score : <input type="text" size="10" name="score" value="<?php echo $score; ?>" /></p>
    <p>   
    <p>Date : <input type="text" size="10" name="date" value="<?php echo $date; ?>" /></p>
    <p>   
    <p>Evaluateur : <select name="moniteur">
    <?
    $SQL = "SELECT * FROM news ORDER BY nom";
    $res = mysql_query($SQL);
    while($val=mysql_fetch_array($res)) {
       echo "<option>".($val["nom"]) .' '. ($val["prenom"])."</option>\n";
    }
    ?>
       </select></p>
    </select></p>   
        <input type="hidden" name="id_registre" value="<?php echo $id_registre; ?>" />
        <input type="submit" value="Envoyer" />
    </p>
    </form>
    </body>
    </html>

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 424
    Points : 382
    Points
    382
    Par défaut
    Tu as mis le STR_TO_DATE dans l'UPDATE mais pas dans l'INSERT
    Si un problème ne trouve pas de solution, c'est qu'il n'y à pas de problème

  11. #11
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Points : 279
    Points
    279
    Par défaut
    ah oui effectivement je vien de modifier pour le mettre dans INSERT INTO, mais la contrairement à avant ou la date apparaissé comme ca : 0000-00-00 maintenant l'enregistrement ne s'effectue pas du tous !

  12. #12
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Points : 279
    Points
    279
    Par défaut
    en faite aprés quelques recherche je pense qu'il faut que je place ceci dans INSERT INTO ;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT STR_TO_DATE('.$date.', '%d.%m.%Y')
    mais dois je le placer ici ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query("INSERT INTO regsitre VALUES('', '" . $personne . "', '" . $epreuve . "', '" . $score . "', SELECT STR_TO_DATE('.$date.', '%d.%m.%Y'), '" . $moniteur . "')");
    ET est ce que la syntaxe est juste car j'ai essayé mais ca ne fonctionne toujours pas, l'enregistrement ne s'effectue pas du tout....

  13. #13
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Points : 279
    Points
    279
    Par défaut
    s'il vous plait personne pour m'aider !!!

  14. #14
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query("INSERT INTO regsitre VALUES('', '" . $personne . "', '" . $epreuve . "', '" . $score . "',  STR_TO_DATE('".$date."', '%d.%m.%Y'), '" . $moniteur . "')");
    plutot comme ca à mon avis
    Stay in Bed .. Save Energy

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 424
    Points : 382
    Points
    382
    Par défaut
    Non il faut pas mettre le mot SELECT, par contre tu as un problème de quotes, essaye :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query("INSERT INTO regsitre VALUES('', '".$personne."', '".$epreuve."', '".$score."', STR_TO_DATE('".$date."','%d.%m.%Y'), '".$moniteur."')");
    Si ca marche toujours pas essaye de voir quelle erreur SQL te génère par la fonction mysql_error
    Si un problème ne trouve pas de solution, c'est qu'il n'y à pas de problème

  16. #16
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Points : 279
    Points
    279
    Par défaut
    de cette facon l'enregistrement dans la table ne s'effectue pas du tous eric93.
    et avec mysql_error j'ai ce message d'erreur :
    Erreur de syntaxe près de '('15/11/1986','%d.%m.%Y'), 'AIZTALOT Grégory')' à la ligne 1

  17. #17
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 424
    Points : 382
    Points
    382
    Par défaut
    Fait un echo de ta requête et montre le résultat du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $requete = "INSERT INTO regsitre VALUES('', '".$personne."', '".$epreuve."', '".$score."', STR_TO_DATE('".$date."','%d.%m.%Y'), '".$moniteur."')";
    echo $requete;
    Si un problème ne trouve pas de solution, c'est qu'il n'y à pas de problème

  18. #18
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Points : 279
    Points
    279
    Par défaut
    Notice: Undefined variable: moniteur in c:\program files\easyphp1-7\www\caserne\liste_registre.php on line 72
    INSERT INTO regsitre VALUES('', '', '', '', STR_TO_DATE('','%d.%m.%Y'), '')

  19. #19
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 424
    Points : 382
    Points
    382
    Par défaut
    Tes variables sont toute vide, le problème ne viens pas de ta requête, tu as un problème pour récuperer les données du formulaire.

    Fait un print_r ($POST) pour voir ce qu'il contient.

    Je n'ai pas le temps d'examiner ton code en entier, je te laisse un peu chercher
    Si un problème ne trouve pas de solution, c'est qu'il n'y à pas de problème

  20. #20
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Points : 279
    Points
    279
    Par défaut
    ben oui normal que mes variables soit vides, car mon formulaire et sur la 2eme page mais la requete INSERT INTO est sur la 1 er page

    en faite j'ai une premiére page qui affiche les résultat, et au dessus un bouton insérer un enregistrement, et sur cette meme page j'ai la requete INSERT INTO.

    et si je selectionne l'ajout d'un nouvel enregistrement alors là j'ai mon autre page qui un formulaire dans le quel j'ai mon champ date.

    voici la premiére page avec l'affichage des resultats et la requete :

    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
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    <?php
     
     
    function datefr2en($date){
       @list($jour,$mois,$annee)=explode('/',$date);
       return @date('Y-m-d',mktime(0,0,0,$mois,$jour,$annee));
    }
     
    mysql_connect("localhost", "root", "");
    mysql_select_db("test");
     
    //-----------------------------------------------------
    // Vérification 1 : est-ce qu'on veut poster une news ?
    //-----------------------------------------------------
    if (isset($_POST['personne']) AND isset ($_POST['epreuve'])AND isset ($_POST['score'])AND isset ($_POST['date'])AND isset ($_POST['moniteur']))
    {
        $personne = addslashes($_POST['personne']);
        $epreuve = addslashes($_POST['epreuve']);
        $score = addslashes($_POST['score']);
        $date = addslashes($_POST['date']);
        $moniteur = addslashes($_POST['moniteur']);
     
        // On vérifie si c'est une modification de personnel ou pas
        if ($_POST['id_registre'] == 0)
        {
            // Ce n'est pas une modification, on crée une nouvelle entrée dans la table
     
    		mysql_query("INSERT INTO regsitre VALUES('', '" . $personne . "', '" . $epreuve . "', '" . $score . "', STR_TO_DATE('" . $date . "','%Y/%m/%d'), '" . $moniteur . "')")or die(mysql_error());
        }
        else
        {
            // On protège la variable "id" pour éviter une faille SQL
            $_POST['id_regsitre'] = addslashes($_POST['id_regsitre']);
            // C'est une modification, on met juste à jour le centre et le matricule et le grade
            mysql_query("UPDATE regsitre SET personne='" . $personne . "', epreuve='" . $epreuve . "', score='" . $score . "', date= STR_TO_DATE('$date', '%d/%m/%Y'), moniteur='" . $moniteur . "' WHERE id='" . $_POST['id_regsitre'] . "'");
        }
    }
     
     
    //--------------------------------------------------------
    // Vérification 2 : est-ce qu'on veut supprimer une news ?
    //--------------------------------------------------------
    if (isset($_GET['supprimer_news'])) // Si on demande de supprimer une news
    {
        // Alors on supprime la news correspondante
        // On protège la variable "id_news" pour éviter une faille SQL
        $_GET['supprimer_news'] = addslashes($_GET['supprimer_news']);
        mysql_query('DELETE FROM regsitre WHERE id=\'' . $_GET['supprimer_news'] . '\'');
    }
     
     $date = date("d-m-Y");
    ?>
    <table><tr bgcolor="#FFCC66">
    <th>Supprimer</th>
    <th>Personne</th>
    <th>Epreuve</th>
    <th>Score</th>
    <th>Date</th>
    <th>Evaluateur</th>
    </tr>
    <?php
    $indice = 0;
    $retour = mysql_query('SELECT *, DATE_FORMAT(date, "%d/%m/%Y") AS date_fr  FROM regsitre ORDER BY date DESC');
    while ($donnees = mysql_fetch_array($retour)) 
    {
    	$reste = $indice % 2;
    if($reste == 0)
         {
     
    ?>
    <tr bgcolor="#FFFFFF">
    <td><?php echo '<a href="liste_REGISTRE.php?supprimer_news=' . $donnees['id'] . '">'; ?><img src="button_drop.png"></a></td>
    <td><?php echo stripslashes($donnees['personne']); ?></td>
    <td><?php echo stripslashes($donnees['epreuve']); ?></td>
    <td><?php echo stripslashes($donnees['score']); ?></td>
    <td><?php echo stripslashes($donnees['date_fr']); ?></td>
    <td><?php echo stripslashes($donnees['moniteur']); ?></td>
    </tr>
    <?
    }
    else
         {
         ?>
    <tr bgcolor="#99CC99">
    <td><?php echo '<a href="liste_REGISTRE.php?supprimer_news=' . $donnees['id'] . '">'; ?><img src="button_drop.png"></a></td>
    <td><?php echo stripslashes($donnees['personne']); ?></td>
    <td><?php echo stripslashes($donnees['epreuve']); ?></td>
    <td><?php echo stripslashes($donnees['score']); ?></td>
    <td><?php echo stripslashes($donnees['date_fr']); ?></td>
    <td><?php echo stripslashes($donnees['moniteur']); ?></td>
    </tr>
    <?
         }
    $indice++;
    } // Fin de la boucle qui liste les news
    ?>
    et voici la deuxiéme ou j'ai mon formulaire

    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
    <?php
     
     
    mysql_connect("localhost", "root", "");
    mysql_select_db("test");
    if (isset($_GET['modifier_news'])) // Si on demande de modifier une personne
    {
        // On protège la variable "modifier_news" pour éviter une faille SQL
        $_GET['modifier_news'] = mysql_real_escape_string(htmlspecialchars($_GET['modifier_news']));
        // On récupère les infos de la correspondante
        $retour = mysql_query('SELECT * FROM regsitre WHERE id=\'' . $_GET['modifier_news'] . '\'');
        $donnees = mysql_fetch_array($retour);
     
        // On place le centre et le matricule dans des variables simples
        $personne = stripslashes($donnees['personne']);
        $epreuve = stripslashes($donnees['epreuve']);
        $score = stripslashes($donnees['score']);
        $date = stripslashes($donnees['date']);
        $moniteur = stripslashes($donnees['moniteur']);
        $id_registre = $donnees['id']; // Cette variable va servir pour se souvenir que c'est une modification
    }
    else // C'est qu'on rentre une nouvelle personne
    {
        // Les variables $centre et $matricule sont vides, puisque c'est une nouvelle news
        $personne = '';
        $epreuve = '';
        $score = '';
        $date = '';
        $moniteur = '';
        $id_registre = 0; // La variable vaut 0, donc on se souviendra que ce n'est pas une modification
    }
     
    ?>
    <form action="liste_REGISTRE.php" method="post">
    <p>Personne : <select name="personne">
    <?
    $SQL = "SELECT * FROM news ORDER BY nom";
    $res = mysql_query($SQL);
    while($val=mysql_fetch_array($res)) {
       echo "<option>".($val["nom"]) .' '. ($val["prenom"])."</option>\n";
    }
    ?>
       </select></p>
    </select></p>  
     
    <p>Epreuve : <select name="epreuve">
    <option></option>
    <option>Killy</option>
    <option>Pompes</option>
    <option>Souplesse</option>
    <option>Tractions</option>
    <option>Gainage</option>
    <option>Luc Leger</option>
    </select></p>
    <p>Score : <input type="text" size="10" name="score" value="<?php echo $score; ?>" /></p>
    <p>   
    <p><b><font color="#FFFFFF">ATTENTION au format YYYY/mm/dd</font></b></p>
    <p>Date : <input type="text" size="10" name="date" value="<?php echo $date; ?>" /></p>
    <p>   
    <p>Evaluateur : <select name="moniteur">
    <?
    $SQL = "SELECT * FROM news ORDER BY nom";
    $res = mysql_query($SQL);
    while($val=mysql_fetch_array($res)) {
       echo "<option>".($val["nom"]) .' '. ($val["prenom"])."</option>\n";
    }
    ?>
       </select></p>
    </select></p>   
        <input type="hidden" name="id_registre" value="<?php echo $id_registre; ?>" />
        <input type="submit" value="Envoyer" />
    </p>
    </form>
    </body>
    </html>
    donc c'est normal que les variable soit vide vu que insert into est sur la 1er page et le formulaire sur la deuxiéme....

Discussions similaires

  1. Convertir un champs date en string
    Par KDZCrew dans le forum Zend Framework
    Réponses: 2
    Dernier message: 04/04/2011, 17h24
  2. [SQL2K] Convertir un champ Char Vers un champ Date
    Par Sidi-Bou dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 29/01/2007, 08h45
  3. [MySQL] Faire un INSERT d'une date format Francais dans un champ date '0000-00-00' ?
    Par bilou95 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 20/11/2006, 13h49
  4. Convertir un champ DATETIME en DATE avec SQLSERVER
    Par __fabrice dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 10/11/2005, 11h26
  5. [SGBD] Convertir une donnée Date MYSQL en format Francais
    Par hillairet dans le forum Débuter
    Réponses: 4
    Dernier message: 28/09/2005, 15h06

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