Je n'arrive pas à inserer un enregistrament danst ma table avec insert into

Fermé
djoab2021 - Modifié le 12 mai 2021 à 13:21
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 - 13 mai 2021 à 01:00
Bonjour,

j'ai un formulaire de saisie des informations de donneurs (nom et prenom) et quand je clique sur boutont enregistrer je fais appel à une page insert_donneur pour ajouter les données saisies dans la table des donneurs.
Le problème posé est que l'enregistrement n'est pas inséré dans la table malgré que je n'ai aucun message d'erreur et que le message "Donneur ajouté avec succés" est affiché.
mon code de la page de saisie des donneurs (page_add_donneur) est le suivant :


<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8"/>
    <title> NOUVEAU DONNEUR </title>
    <link rel="stylesheet" type="text/css" href="../css/bootstrap.css">
    <link rel="stylesheet" type="text/css" href="../css/font-awesome.min.css">
    <link rel="stylesheet" href="../css/jquery-ui-1.10.4.custom.css">
    <link rel="stylesheet" href="../css/monStyle.css">

    <script src="../js/jquery-1.10.2.js"></script>
    <script src="../js/jquery-ui-1.10.4.js"></script>
    <script src="../js/bootstrap.min.js"></script>

    <script src="../js/school.js"></script>

    <script src="js/jquery-ui-i18n.min.js"></script>
    <script>
        $(function (){
            // définit les options par défaut du calendrier
            $.datepicker.setDefaults({
                showButtonPanel: true,// affiche des boutons sous le calendrier
                showOtherMonths: true, // affiche les autres mois
                selectOtherMonths: true // possibilités de sélectionner les jours des autres mois
                //changeMonth: true, // changer les mois
               // changeYear: true, // changer les années
            });

            //$("#calendar").datepicker(); // affiche le calendrier par défaut
            //$("#calendar").datepicker($.datepicker.regional["fr"]); // affiche le calendrier en fr
            $("#calendar").datepicker({
                dateFormat: "yy-mm-dd",

            });
            $("#calendar1").datepicker({
                dateFormat: "yy-mm-dd",

            });
        });
    </script>


</head>

<body>
<?php include('../menu.php'); ?>
<br><br><br>
<a href="page_les_donneurs.php">
                          
           <span class="glyphicon glyphicon-arrow-left"></span>               
           Retour  
            
        </a>    
<div class="container">

    <div class="panel panel-primary">
        <div class="panel-heading" align="center"> NOUVEAU DONNEUR</div>
        <div class="panel-body">
            <form method="post" action="insert_donneur.php"> 
                ------------------------- INFORMATIONS DU DONNEUR -------------------------
                  <br><br>
                <div class="row my-row">
                    <label for="nom_donneur" class="control-label col-sm-2"> NOM </label>
                    <div class="col-sm-4">
                        <input required type="text" name="nom_donneur" id="nom_donneur" class="form-control">
                    </div>


                    <label for="prenom_donneur" class="control-label col-sm-2"> PRENOM </label>
                    <div class="col-sm-4">
                        <input required type="text" name="prenom_donneur" id="prenom_donneur" class="form-control">
                    </div>

                </div>


         <button type="submit" class="btn btn-success" display:inline-block>
                            <span class="glyphicon glyphicon-save"></span>
                            
                     Enregistrer
            </button> 
            
            </form>
        </div>
    </div>
</div> 
</body>
</html>

Le code de la page insert_donneur pour inserer le donneur saisie est la suivante :

<?php
  require('../utilisateurs/ma_session.php');
 ?>

<?php

 require('../connexion.php');
 
 $nom_donneur=$_POST['nom_donneur'];
     echo $nom_donneur;
 $prenom_donneur=$_POST['prenom_donneur'];
    echo $prenom_donneur;
    
 $requete_insert_don="INSERT INTO donneurs  ('iddonneur',`nom_donneur`, `prenom_donneur`) VALUES(?,?,?)";
 $valeurs_insert_don=array(NULL,$nom_donneur,$prenom_donneur);

 $resultat_insert_don=$pdo->prepare($requete_insert_don);
 $resultat_insert_don->execute($valeurs_insert_don);
/*
 // l'id de dernier donneur 
 $requete_dernier_don="SELECT * FROM donneurs ORDER BY iddonneur desc limit 1 ";
    echo $requete_dernier_don;
 $resultat_dernier_don=$pdo->query($requete_dernier_don);
 $dernier_donneur=$resultat_dernier_don->fetch(); 
 $iddonneur=$dernier_donneur['iddonneur'];


*/
 $msg="Donneur ajouté avec succès";
 $url="donneurs/page_add_donneur.php";  
 header("location:../message.php?msg=$msg&color=v&url=$url");  
?>

je tiens à vous préciser que j'utilise les versions :
windows 7 professionnel 64 bits service pack1
navigateur : firefox
WAMPSERVER 2.5
MYSQL 5.6.17
APACHE 2.4.9
PHP 5.5.12
brackets : Version 1.14 édition 1.14.2-17770 (release-1.14.2

je sais que ça doit être qcq chose de simple mais comme je suis débutant, je n'arrive pas à voir mon erreur. Donc je sollicite votre aide et je vous remercie d'avance.

Configuration: Windows / Chrome 90.0.4430.212


EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.
A voir également:

2 réponses

yg_be Messages postés 22726 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 476
12 mai 2021 à 13:14
bonjour,
merci d'utiliser les balises de code quand tu partages du code, comme expliqué en https://codes-sources.commentcamarche.net/faq/11288-poster-un-extrait-de-code


il me semble que ton code doit être modifié pour détecter les erreurs, comme expliqué en https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
13 mai 2021 à 01:00
Bonjour,

En complément des indicatiosn fournies par Yg_be, il semble que :
Tu as utilisé des quotes autour du nom du champ id ... alors qu'il faut, soit ne pas en mettre, soit utiliser des back-quotes.
Si le champ est de type auto-incrémenté, il ne faut pas l'indiquer dans la requête. (du moins, ça ne sert à rien)

Donc, essayes comme ceci
<?php

 require_once '../utilisateurs/ma_session.php';
 require_once  '../connexion.php';
 
 $nom_donneur = !empty($_POST['nom_donneur']) ? $_POST['nom_donneur'] : NULL;
 $prenom_donneur = !empty($_POST['prenom_donneur']) ? $_POST['prenom_donneur']: NULL;
 
 echo $nom_donneur;
 echo $prenom_donneur;

 $sql="INSERT INTO donneurs  (`nom_donneur`, `prenom_donneur`) VALUES(?,?)";
 $datas=array($nom_donneur,$prenom_donneur);

 try{
  $resultat_insert_don = $pdo->prepare($sql);
  $resultat_insert_don->execute($datas);
 }catch(Exception $e){
   echo ' Erreur : ' . $e->getMessage();
 }

0