Erreurs sur modele.class, selectAccueil pour site

Signaler
-
Messages postés
33126
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 juillet 2021
-
Bonjour à tous.

Je réalise un site en PHP, pour mes études, avec pour thème une organisation caritative avec des fonctions d'ajout, de modification, de suppression, de dons, de membres ...

Le site pourraît être fonctionnel (CSS terminé ...), puisque lorsque j'ajoute un don, un projet ... il m'affiche ces erreurs :

"
Notice: Undefined index: date in (..) \vue\vueSelectAccueil.php on line 50"

Use of undefined constant mdp - assumed 'mdp' in (...) \modele\modele.class.php on line 248

Pourtant, l'insertion est indiquée "réussie avec succès" ... J'avoue que depuis plusieurs jours, je suis perdu ...

Saurez-vous m'aider ?

Merci d'avance.

Outils : Windows et Xampp

Pour le selectAccueil :

<table class="affichage" border= 1>
    <tr>
         
        <th> Commentaire </th>
        <th> Don </th>
        <th> Membre </th>
        <th> Projet </th>
 
         
    </tr>
    <?php
        foreach ($lesCommentaires as $unCommentaire)
        {
            echo"
            <tr>
                <td>".$unCommentaire['date']."</td>
                <td>".$unCommentaire['contenu']."</td>
                <td>".$unCommentaire['note']."</td>
            </tr>";
        }
 
        foreach ($lesDons as $unDon)
        {
            echo"
            <tr>
                <td>".$unDon['date']."</td>
                <td>".$unDon['somme']."</td>
                <td>".$unDon['appreciation']."</td>
            </tr>";
        }
 
        foreach ($lesMembres as $unMembre)
        {
            echo"
            <tr>
                <td>".$unMembre['nom']."</td>
                <td>".$unMembre['prenom']."</td>
                <td>".$unMembre['adresse']."</td>
                <td>".$unMembre['telephone']."</td>
                <td>".$unMembre['email']."</td>
                <td>".$unMembre['motdepasse']."</td>
            </tr>";
        }
 
        foreach ($lesProjets as $unProjet)
        {
            echo"
            <tr>
                <td>".$unProjet['description']."</td>
                <td>".$unProjet['date']."</td>
                <td>".$unProjet['pays']."</td>
                <td>".$unProjet['ville']."</td>
                <td>".$unProjet['budget']."</td>
                <td>".$unProjet['somme']."</td>
            </tr>";
        }
    ?>
</table>



Pour le modele.class
<?php
    class Modele
    {
        private $pdo ;
 
        public function __construct ()
        {
            try
            {
 
                $this->pdo = new PDO("mysql:host=localhost;dbname=secours", "root", "");
            }
            catch (PDOException $exp)
            {
                echo "Erreur de connexion au serveur localhost/secours";
                echo $exp->getMessage();
            }
        }
/*----------------------------------Fonctions gestion des commentaires----------------------------------*/
        public function selectAllCommentaires()
        {
            if ($this->pdo == null)
            {
                return null;
            }
            else
            {
                $requete = "select * from commentaire;";
 
                $select = $this->pdo->prepare($requete);
 
                $select->execute();
 
                $resultats = $select->fetchAll();
 
                return $resultats;
            }
        }
 
        public function insertCommentaire($tab)
        {
            if ($this->pdo == null)
            {
                return null;
            }
            else
            {
                $requete = "insert values into commentaire (null, idcommentaire, datecomment, contenu, note, idprojet, idmembre);";
 
                $donnees = array(idcommentaire=>$tab['idcommentaire'], datecomment=>$tab['datecomment'], contenu=>$tab['contenu'],note=>$tab['note'],idprojet=>$tab['idprojet'], idmembre=>$tab['idmembre ']);
 
                $select = $this->pdo->prepare($requete);
 
                $select->execute($donnees);
            }
        }
 
        public function updateCommentaire($tab)
        {
            if ($this->pdo == null)
            {
                return null;
            }
            else
            {
                $requete = "update commentaire set dateComment = :dateComment, contenu =:contenu, note = :note, idprojet = :idprojet, idmembre =:idmembre where idcommentaire = :idcommentaire;";
 
                $donnees = array(":dateComment"=>$tab['dateComment'], ":contenu"=>$tab['contenu'], ":note"=>$tab['note'], ":idprojet"=>$tab['idprojet'],":idmembre"=>$tab['idmembre']);
 
                $update = $this->pdo->prepare($requete);
                $update->execute($donnees);
            }
        }
 
        public function deleteCommentaire($idcommentaire)
        {
            if ($this->pdo == null)
            {
                return null;
            }
            else
            {
                $requete ="delete from commentaire where idcommentaire = :idcommentaire;";
 
                $donnes = array(":idcommentaire"=>$idcommentaire);
 
                $delete = $this->pdo->prepare($requete);
 
                $delete->execute($donnes);
            }
        }
 
        public function selectWhereCommentaire($idcommentaire)
            {
                if ($this->pdo == null)
                {
                    return null;
                }
                else
                {
                    $requete ="select * from commentaire where idcommentaire = :idcommentaire ;";
 
                    $donnes = array(":idcommentaire"=>$idcommentaire);
 
                    $select = $this ->pdo->prepare($requete);
 
                    $select->execute($donnes);
 
                    $unCommentaire = $select->fetch();
 
                    return $unCommentaire;
                }
            }
/*----------------------------------Fonctions gestion des dons----------------------------------*/
        public function selectAllDons()
        {
            if ($this->pdo == null)
            {
                return null;
            }
            else
            {
                $requete = "select * from don;";
 
                $select = $this->pdo->prepare($requete);
 
                $select->execute();
 
                $resultats = $select->fetchAll();
 
                return $resultats;
            }
        }
 
        public function insertDon($tab)
        {
            if ($this->pdo == null)
            {
                return null;
            }
            else
            {
                $requete = "insert into don values (null,datedon, somme, appreciation, idprojet, idmembre);";
 
                $donnees = array(datedon=>$tab['datedon'], somme=>$tab['somme'], appreciation=>$tab['appreciation'],
                 idprojet=>$tab['idprojet'],idmembre=>$tab['idmembre']);
 
            $select = $this->pdo->prepare($requete);
            $select->execute($donnees);
            }
        }
 
        public function updateDon($tab)
        {
            if ($this->pdo == null)
            {
                return null;
            }
            else
            {
                $requete = "update don set datedon = :datedon, somme = :somme, appreciation = :appreciation, idprojet = :idprojet, idmembre = :idmembre where iddon = :iddon;;";
 
                $donnees = array(":datedon"=>$tab['datedon'],
                                 ":somme"=>$tab['somme'],
                                 ":appreciation"=>$tab['appreciation'],
                                 ":idprojet"=>$tab['idprojet'],
                                 ":idmembre"=>$tab['idmembre'],
                                );
 
                $update = $this->pdo->prepare($requete);
                $update->execute($donnees);
            }
 
        }
 
        public function deleteDon($iddon)
        {
            if ($this->pdo == null)
            {
                return null;
            }
            else
            {
                $requete ="delete from don where iddon = :iddon;";
 
                $donnes = array(":iddon"=>$iddon);
 
                $delete = $this->pdo->prepare($requete);
 
                $delete->execute($donnes);
            }
        }
 
        public function selectWhereDon($iddon)
        {
            if ($this->pdo == null)
            {
                return null;
            }
            else
            {
                $requete = "select * from don where iddon = :iddon;";
 
                $donnees=array(":iddon"=>$iddon);
 
                $select = $this->pdo->prepare($requete);
 
                $select -> execute($donnees);
 
                $unDon = $select->fetch();
 
                return($unDon);
            }
        }
 
 
/*----------------------------------Fonctions gestion des membres----------------------------------*/
        public function selectAllMembres()
        {
            if ($this->pdo == null)
            {
                return null;
            }
            else
            {
                $requete = "select * from membre;";
 
                $select = $this->pdo->prepare($requete);
 
                $select->execute();
 
                $resultats = $select->fetchAll();
 
                return $resultats;
            }
        }
 
        public function insertMembre($tab)
        {
            if ($this->pdo == null)
            {
                return null;
            }
            else
            {
                $requete = "insert into membre values (null,nom,prenom,adresse,tel,email,mdp);";
 
                $donnees=array(nom=>$tab['nom'],prenom=>$tab['prenom'],adresse=>$tab['adresse'],tel=>$tab['tel'],email=>$tab['email'],mdp=>$tab['mdp']);
 
                $select = $this->pdo->prepare($requete);
 
                $select->execute($donnees);
            }
        }
 
        public function updateMembre($tab)
        {
            if ($this->pdo == null)
            {
                return null;
            }
            else
            {
                $requete = "update membre set nom = :nom, prenom = :prenom, adresse = :adresse, tel = :tel, email = :email, mdp = :mdp where idmembre = :idmembre;";
 
                $donnees = array(":nom"=>$tab['nom'],":prenom"=>$tab['prenom'],":adresse"=>$tab['adresse'], "tel"=>$tab['tel'], ":email"=>$tab['email'],":mdp"=>$tab['mdp'],);
 
                $update = $this->pdo->prepare($requete);
 
                $update->execute($donnees);
            }
        }
 
        public function deleteMembre($idmembre)
        {
            if ($this->pdo == null)
            {
                return null;
            }
            else
            {
                $requete ="delete from membre where idmembre = :idmembre;";
 
                $donnes = array(":idmembre"=>$idmembre);
 
                $delete = $this->pdo->prepare($requete);
                //exécutiobn de la requête
                $delete->execute($donnes);
            }
        }
 
        public function selectWhereMembre($idmembre)
        {
            if ($this->pdo == null)
            {
                return(null);
            }
            else
            {
                $requete = "select * from membre where idmembre = :idmembre;";
 
                $donnees = array(":idmembre"=>$idmembre);
 
                $select = $this -> pdo->prepare($requete);
 
                $select->execute($donnees);
 
                $unMembre=$select->fetch();
                return($unMembre);
            }
        }
/*----------------------------------Fonctions gestion des projets----------------------------------*/
        public function selectAllProjets()
        {
            if ($this->pdo == null)
            {
                return null;
            }
            else
            {
                $requete = "select * from projet;";
 
                $select = $this->pdo->prepare($requete);
 
                $select->execute();
 
                $resultats = $select->fetchAll();
 
                return $resultats;
            }
        }
 
        public function insertProjet($tab)
        {
            if ($this->pdo == null)
            {
                return null;
            }
            else
            {
                $requete = "insert into projet values (null,description, datelancement, pays, ville, budget, sommecollectee);";
 
                $donnees = array(description=>$tab['description'],datelancement=>$tab['datelancement'],pays=>$tab['pays'],ville=>$tab['ville'],budget=>$tab['budget'],sommecollectee=>$tab['sommecollectee']);
 
                $select = $this->pdo->prepare($requete);
                $select->execute($donnees);
            }
        }
 
        public function updateProjet($tab)
            {
                   if ($this->pdo == null)
                {
                    return null;
                }
                else
                {
                    $requete = "update projet set description = :description, datelancement = :datelancement, pays = :pays, ville = :ville, budget = :budget, sommecollectee = :sommecollectee where idprojet = :idprojet;";
 
                    $donnees = array(":description"=>$tab['description'], ":datelancement"=>$tab['datelancement'], ":pays"=>$tab['pays'], ":ville"=>$tab['ville'], ":budget"=>$tab['budget'],":sommecollectee"=>$tab['sommecollectee']);
 
                    $update = $this->pdo->prepare($requete);
 
                    $update->execute($donnees);
                }
            }
 
        public function deleteProjet ($idprojet)
        {
            if ($this->pdo == null)
            {
                return null;
            }
            else
            {
                $requete = "delete from projet where idprojet = :idprojet;";
 
                $donnees = array(":idprojet"=>$idprojet);
 
                $delete = $this->pdo->prepare($requete);
 
                $delete->execute($donnees);
            }
        }
 
        public function selectWhereProjet ($idprojet)
        {
            if ($this->pdo == null)
            {
                return null;
            }
            else
            {
                $requete = "select * from projet where idprojet = :idprojet;";
 
                $donnees = array(":idprojet"=>$idprojet);
 
                $select = $this->pdo->prepare($requete);
 
                $select -> execute($donnees);
 
                $unProjet = $select->fetch();
 
                return $unProjet;
            }
        }
 
    }
?>


Pour le contrôleur

<?php
 
    require_once ("modele/modele.class.php");
 
    class Controleur
    {
        //un seul attribut c'est une instance de la classe Modele
 
        private $unModele ;
 
        public function __construct ()
        {
            $this->unModele = new Modele ();
        }
 
/******************************************Gestion des commentaires******************************************/
 
        public function selectAllCommentaires ()//modele ligne 20
        {
            //le controleur appelle le modèle
            $resultats = $this->unModele->selectAllCommentaires ();
            return $resultats ;
        }
 
        public function insertCommentaire($tab) //modele ligne 40
        {
            $this->unModele->insertommentaire($tab);
        }
 
        public function deleteCommentaire ($idcommentaire)//modele ligne 75
        {
            $this->unModele->deleteCommentaire($iddeces);
        }
 
        public function selectWhereCommentaire ($idcommentaire)//modele ligne 93
        {
            //on récupère le décès avec cet ID
            return $this->unModele->selectWhereCommentaire($idcommentaire);
        }
 
        public function updateCommentaire ($tab)//modele ligne 58
        {
            //Modification de la décès
            $this->unModele->updateCommentaire($tab);
        }
 
/******************************************Gestion des dons******************************************/
 
        public function selectAllDons ()//modele ligne 115
        {
            //le controleur appelle le modele
            $resultats = $this->unModele->selectAllDons ();
            //on peut réaliser des traitements sur les victimes récupérées de la base de données avant de les envoyer à la vue.
            //on le fera plus tard
            return $resultats ;
        }
 
        public function insertDon ($tab) //modele ligne 135
        {
            //on doit réaliser ici les contrôleurs des données avant appel du modèle
            //une fois tous les contrôleurs sont satisfaits, on appelle le modèle
            $this->unModele->insertDon ($tab);
        }
 
        public function deleteDon($iddon)//modele ligne 171
        {
            //on vérifie si l'ID est rempli et il existe parmi les victimes
            $this->unModele->deleteDon($iddon);
        }
 
        public function selectWhereDon ($iddon)
        {
            //on récupère la victime avec cet ID
            return $this->unModele->selectWhereDon($iddon);
        }
 
        public function updateDon ($tab)//modele ligne 153
        {
            //Modification de la victime
            $this->unModele->updateDon($tab);
        }
 
/******************************************Gestion des membres******************************************/
 
         public function selectAllMembres ()//modele ligne 194
         {
            return $this->unModele->selectAllMembres();
         }
 
        public function insertMembre ($tab)//modele ligne 231
        {
            $this->unModele->insertMembre($tab);
        }
 
        public function deleteMembre ($idmembre)//modele ligne 252
        {
            $this->unModele->deleteMembre($idmembre);
        }
 
        public function selectWhereMembre ($idmembre)//modele ligne 270
        {
            //on récupère le cimetière avec cet ID
            return $this->unModele->selectWhereMembre($idmembre);
        }
 
        public function updateMembre ($tab)//modele ligne 234
        {
            //Modification du cimetière
            $this->unModele->updateMembre($tab);
        }
 
/******************************************Gestion des projets******************************************/
 
        public function selectAllProjets()//modele ligne 291
         {
            return $this->unModele->selectAllProjets();
         }
 
        public function insertProjet ($tab)//modele ligne 326
        {
            $this->unModele->insertProjet($tab);
        }
 
        public function deleteProjet ($idprojet)//modele ligne 346
        {
            $this->unModele->deleteProjet($idprojet);
        }
 
        public function selectWhereProjet ($idprojet)//modele ligne 364
        {
            //on récupère l'entrepôt avec cet ID
            return $this->unModele->selectWhereProjet($idprojet);
        }
 
        public function updateProjet ($tab)//modele ligne 328
        {
            //Modification de l'entrepôt
            $this->unModele->updateProjet($tab);
        }
 
    }
?>


EDIT: Ajout des balises de code (jordane)

6 réponses

Messages postés
16435
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
24 juillet 2021
880
bonjour,
lis bien ceci: pour poster correctement ton code:
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Messages postés
33126
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 juillet 2021
3 635
Bonjour,

Comment par activer l'affichage des erreurs PDO dans ton code et place CHAQUE requête dans un bloc try/catch
https://www.commentcamarche.net/faq/46512-pdo-gerer-les-erreurs

Ensuite, tu sembles avoir oublié de mettre des quotes autour du "nom" de tes variables dans ton array

                $donnees = array(idcommentaire=>$tab['idcommentaire'], datecomment=>$tab['datecomment'], contenu=>$tab['contenu'],note=>$tab['note'],idprojet=>$tab['idprojet'], idmembre=>$tab['idmembre ']);
 

A changer par

                $donnees = array('idcommentaire'=>$tab['idcommentaire'], 'datecomment'=>$tab['datecomment'], 
'contenu'=>$tab['contenu'],
'note'=>$tab['note'],
'idprojet'=>$tab['idprojet'], 
'idmembre'=>$tab['idmembre ']);
 



pour finir, ton message d'erreur indique que la variable "date" n'existe pas à la ligne
 <td>".$unProjet['date']."</td>

Tu ne remontes donc pas cette variable dans ton code......
fais donc un
var_dump($unProjet);

pour voir ce qu'il contient.... tu verras que "date" n'y est pas
Messages postés
33126
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 juillet 2021
3 635
et pour l'autre message d'erreur

Use of undefined constant mdp - assumed 'mdp' in (...) \modele\modele.class.php on line 248

même problème... ta variable $tab ne contient visiblement pas de 'mdp'

Pour le modèle

<?php
    class Modele
    {
        private $pdo ;
 
        public function __construct ()
        {
            try
            {
 
                $this->pdo = new PDO("mysql:host=localhost;dbname=secours", "root", "");
            }
            catch (PDOException $exp)
            {
                echo "Erreur de connexion au serveur localhost/secours";
                echo $exp->getMessage();
            }
        }
/*----------------------------------Fonctions gestion des commentaires----------------------------------*/
        public function selectAllCommentaires()
        {
            if ($this->pdo == null)
            {
                return null;
            }
            else
            {
                $requete = "select * from commentaire;";
 
                $select = $this->pdo->prepare($requete);
 
                $select->execute();
 
                $resultats = $select->fetchAll();
 
                return $resultats;
            }
        }
 
        public function insertCommentaire($tab)
        {
            if ($this->pdo == null)
            {
                return null;
            }
            else
            {
                $requete = "insert values into commentaire (null, :idcomment, :datecomment, :contenu, :note);";
 
                $donnees = array('idcomment'=>$tab['idcomment'],
                'datecomment'=>$tab['datecomment'],
                'contenu'=>$tab['contenu'],
                'note'=>$tab['note']);
                     
 
                $select = $this->pdo->prepare($requete);
 
                $select->execute($donnees);
            }
        }
 
        public function updateCommentaire($tab)
        {
            if ($this->pdo == null)
            {
                return null;
            }
            else
            {
                $requete = "update commentaire set datecomment = :datecomment, contenu =:contenu, note = :note, where idcomment = :idcomment;";
 
                $donnees = array(":idcomment"=>$tab['idcomment'],
                                ":datecomment"=>$tab['datecomment'],
                                ":contenu"=>$tab['contenu'],
                                ":note"=>$tab['note']);
 
                $update = $this->pdo->prepare($requete);
                $update->execute($donnees);
            }
        }
 
        public function deleteCommentaire($idcomment)
        {
            if ($this->pdo == null)
            {
                return null;
            }
            else
            {
                $requete ="delete from commentaire where idcomment = :idcomment;";
 
                $donnees = array(":idcomment"=>$tab['idcomment'],
                                ":datecomment"=>$tab['datecomment'],
                                ":contenu"=>$tab['contenu'],
                                ":note"=>$tab['note']);
 
                $delete = $this->pdo->prepare($requete);
 
                $delete->execute($donnes);
            }
        }
 
        public function selectWhereCommentaire($idcomment)
            {
                if ($this->pdo == null)
                {
                    return null;
                }
                else
                {
                    $requete ="select * from commentaire where idcomment = :idcomment ;";
 
                    $donnees = array(":idcomment"=>$tab['idcomment'],
                                ":datecomment"=>$tab['datecomment'],
                                ":contenu"=>$tab['contenu'],
                                ":note"=>$tab['note']);
 
                    $select = $this ->pdo->prepare($requete);
 
                    $select->execute($donnes);
 
                    $unCommentaire = $select->fetch();
 
                    return $unCommentaire;
                }
            }
/*----------------------------------Fonctions gestion des dons----------------------------------*/
        public function selectAllDons()
        {
            if ($this->pdo == null)
            {
                return null;
            }
            else
            {
                $requete = "select * from don;";
 
                $select = $this->pdo->prepare($requete);
 
                $select->execute();
 
                $resultats = $select->fetchAll();
 
                return $resultats;
            }
        }
 
        public function insertDon($tab)
        {
            if ($this->pdo == null)
            {
                return null;
            }
            else
            {
                $requete = "insert into don values (null,:iddon,:datedon, :somme, :appreciation);";
 
                $donnees = array('iddon'=>$tab['iddon'],
                    'datedon'=>$tab['datedon'],
                    'somme'=>$tab['somme'],
                    'appreciation'=>$tab['appreciation']);
 
            $select = $this->pdo->prepare($requete);
 
            $select->execute($donnees);
            }
        }
 
        public function updateDon($tab)
        {
            if ($this->pdo == null)
            {
                return null;
            }
            else
            {
                $requete = "update don set datedon = :datedon, somme = :somme, appreciation = :appreciation where iddon = :iddon;;";
 
                $donnees = array(":iddon"=>$tab['iddon'],
                                 ":datedon"=>$tab['datedon'],
                                 ":somme"=>$tab['somme'],
                                 ":appreciation"=>$tab['appreciation']);
 
                $update = $this->pdo->prepare($requete);
 
                $update->execute($donnees);
            }
 
        }
 
        public function deleteDon($iddon)
        {
            if ($this->pdo == null)
            {
                return null;
            }
            else
            {
                $requete ="delete from don where iddon = :iddon;";
 
                $donnees = array(":iddon"=>$tab['iddon'],
                                 ":datedon"=>$tab['datedon'],
                                 ":somme"=>$tab['somme'],
                                 ":appreciation"=>$tab['appreciation']);
 
                $delete = $this->pdo->prepare($requete);
 
                $delete->execute($donnees);
            }
        }
 
        public function selectWhereDon($iddon)
        {
            if ($this->pdo == null)
            {
                return null;
            }
            else
            {
                $requete = "select * from don where iddon = :iddon;";
 
                $donnees = array(":iddon"=>$tab['iddon']);
 
                $select = $this->pdo->prepare($requete);
 
                $select -> execute($donnees);
 
                $unDon = $select->fetch();
 
                return($unDon);
            }
        }
 
 
/*----------------------------------Fonctions gestion des membres----------------------------------*/
        public function selectAllMembres()
        {
            if ($this->pdo == null)
            {
                return null;
            }
            else
            {
                $requete = "select * from membre;";
 
                $select = $this->pdo->prepare($requete);
 
                $select->execute();
 
                $resultats = $select->fetchAll();
 
                return $resultats;
            }
        }
 
        public function insertMembre($tab)
        {
            if ($this->pdo == null)
            {
                return null;
            }
            else
            {
                $requete = "insert into membre values (null,:idmembre,:nom,:prenom,:adresse,:tel,:email,:mdp);";
 
                $donnees=array('idmembre'=>$tab['idmembre'],
                    'nom'=>$tab['nom'],
                    'prenom'=>$tab['prenom'],
                    'adresse'=>$tab['adresse'],
                    'tel'=>$tab['tel'],
                    'email'=>$tab['email'],
                    'mdp'=>$tab['mdp']);
 
                $select = $this->pdo->prepare($requete);
 
                $select->execute($donnees);
            }
        }
 
        public function updateMembre($tab)
        {
            if ($this->pdo == null)
            {
                return null;
            }
            else
            {
                $requete = "update membre set nom = :nom, prenom = :prenom, adresse = :adresse, tel = :tel, email = :email, mdp = :mdp where idmembre = :idmembre;";
 
                $donnees=array('idmembre'=>$tab['idmembre'],
                    'nom'=>$tab['nom'],
                    'prenom'=>$tab['prenom'],
                    'adresse'=>$tab['adresse'],
                    'tel'=>$tab['tel'],
                    'email'=>$tab['email'],
                    'mdp'=>$tab['mdp']);
 
                $update = $this->pdo->prepare($requete);
 
                $update->execute($donnees);
            }
        }
 
        public function deleteMembre($idmembre)
        {
            if ($this->pdo == null)
            {
                return null;
            }
            else
            {
                $requete ="delete from membre where idmembre = :idmembre;";
 
                $donnees=array('idmembre'=>$tab['idmembre'],
                                'nom'=>$tab['nom'],
                                'prenom'=>$tab['prenom'],
                                'adresse'=>$tab['adresse'],
                                'tel'=>$tab['tel'],
                                'email'=>$tab['email'],
                                'mdp'=>$tab['mdp']);
 
                $delete = $this->pdo->prepare($requete);
                //exécutiobn de la requête
                $delete->execute($donnees);
            }
        }
 
        public function selectWhereMembre($idmembre)
        {
            if ($this->pdo == null)
            {
                return(null);
            }
            else
            {
                $requete = "select * from membre where idmembre = :idmembre;";
 
                $donnees=array('idmembre'=>$tab['idmembre'],
                                'nom'=>$tab['nom'],
                                'prenom'=>$tab['prenom'],
                                'adresse'=>$tab['adresse'],
                                'tel'=>$tab['tel'],
                                'email'=>$tab['email'],
                                'mdp'=>$tab['mdp']);
 
 
                $select = $this -> pdo->prepare($requete);
 
                $select->execute($donnees);
 
                $unMembre=$select->fetch();
                return($unMembre);
            }
        }
/*----------------------------------Fonctions gestion des projets----------------------------------*/
        public function selectAllProjets()
        {
            if ($this->pdo == null)
            {
                return null;
            }
            else
            {
                $requete = "select * from projet;";
 
                $select = $this->pdo->prepare($requete);
 
                $select->execute();
 
                $resultats = $select->fetchAll();
 
                return $resultats;
            }
        }
 
        public function insertProjet($tab)
        {
            if ($this->pdo == null)
            {
                return null;
            }
            else
            {
                $requete = "insert into projet values (null,:idprojet,:description, :datelancement, :pays, :ville, :budget, :sommecollectee);";
 
                $donnees = array('idprojet'=>$tab['idprojet'],
                    'description'=>$tab['description'],
                    'datelancement'=>$tab['datelancement'],
                    'pays'=>$tab['pays'],
                    'ville'=>$tab['ville'],
                    'budget'=>$tab['budget'],
                    'sommecollectee'=>$tab['sommecollectee']);
 
                $select = $this->pdo->prepare($requete);
                $select->execute($donnees);
            }
        }
 
        public function updateProjet($tab)
            {
                   if ($this->pdo == null)
                {
                    return null;
                }
                else
                {
                    $requete = "update projet set description = :description, datelancement = :datelancement, pays = :pays, ville = :ville, budget = :budget, sommecollectee = :sommecollectee where idprojet = :idprojet;";
 
                    $donnees = array('idprojet'=>$tab['idprojet'],
                        ":description"=>$tab['description'],
                        ":datelancement"=>$tab['datelancement'],
                        ":pays"=>$tab['pays'],
                        ":ville"=>$tab['ville'],
                        ":budget"=>$tab['budget'],
                        ":sommecollectee"=>$tab['sommecollectee']);
 
                    $update = $this->pdo->prepare($requete);
 
                    $update->execute($donnees);
                }
            }
 
        public function deleteProjet ($idprojet)
        {
            if ($this->pdo == null)
            {
                return null;
            }
            else
            {
                $requete = "delete from projet where idprojet = :idprojet;";
 
                $donnees = array('idprojet'=>$tab['idprojet'],
                        ":description"=>$tab['description'],
                        ":datelancement"=>$tab['datelancement'],
                        ":pays"=>$tab['pays'],
                        ":ville"=>$tab['ville'],
                        ":budget"=>$tab['budget'],
                        ":sommecollectee"=>$tab['sommecollectee']);
 
                $delete = $this->pdo->prepare($requete);
 
                $delete->execute($donnees);
            }
        }
 
        public function selectWhereProjet ($idprojet)
        {
            if ($this->pdo == null)
            {
                return null;
            }
            else
            {
                $requete = "select * from projet where idprojet = :idprojet;";
 
                $donnees = array(":idprojet"=>$idprojet);
 
                $select = $this->pdo->prepare($requete);
 
                $select -> execute($donnees);
 
                $unProjet = $select->fetch();
 
                return $unProjet;
            }
        }
 
    }
?><br><br>


Pour le contrôleur

<?php
 
    require_once ("modele/modele.class.php");
 
    class Controleur
    {
        //un seul attribut c'est une instance de la classe Modele
 
        private $unModele ;
 
        public function __construct ()
        {
            $this->unModele = new Modele ();
        }
 
/******************************************Gestion des commentaires******************************************/
 
        public function selectAllCommentaires ()//modele ligne 20
        {
            //le controleur appelle le modèle
            $resultats = $this->unModele->selectAllCommentaires ();
            return $resultats ;
        }
 
        public function insertCommentaire($tab) //modele ligne 40
        {
            $this->unModele->insertCommentaire($tab);
        }
 
        public function deleteCommentaire ($idcommentaire)//modele ligne 75
        {
            $this->unModele->deleteCommentaire($idcommentaire);
        }
 
        public function selectWhereCommentaire ($idcommentaire)//modele ligne 93
        {
            //on récupère le décès avec cet ID
            return $this->unModele->selectWhereCommentaire($idcommentaire);
        }
 
        public function updateCommentaire ($tab)//modele ligne 58
        {
            //Modification de la décès
            $this->unModele->updateCommentaire($tab);
        }
 
/******************************************Gestion des dons******************************************/
 
        public function selectAllDons ()//modele ligne 115
        {
            //le controleur appelle le modele
            $resultats = $this->unModele->selectAllDons ();
            //on peut réaliser des traitements sur les victimes récupérées de la base de données avant de les envoyer à la vue.
            //on le fera plus tard
            return $resultats ;
        }
 
        public function insertDon ($tab) //modele ligne 135
        {
            //on doit réaliser ici les contrôleurs des données avant appel du modèle
            //une fois tous les contrôleurs sont satisfaits, on appelle le modèle
            $this->unModele->insertDon ($tab);
        }
 
        public function deleteDon($iddon)//modele ligne 171
        {
            //on vérifie si l'ID est rempli et il existe parmi les victimes
            $this->unModele->deleteDon($iddon);
        }
 
        public function selectWhereDon ($iddon)
        {
            //on récupère la victime avec cet ID
            return $this->unModele->selectWhereDon($iddon);
        }
 
        public function updateDon ($tab)//modele ligne 153
        {
            //Modification de la victime
            $this->unModele->updateDon($tab);
        }
 
/******************************************Gestion des membres******************************************/
 
         public function selectAllMembres ()//modele ligne 194
         {
            return $this->unModele->selectAllMembres();
         }
 
        public function insertMembre ($tab)//modele ligne 231
        {
            $this->unModele->insertMembre($tab);
        }
 
        public function deleteMembre ($idmembre)//modele ligne 252
        {
            $this->unModele->deleteMembre($idmembre);
        }
 
        public function selectWhereMembre ($idmembre)//modele ligne 270
        {
            //on récupère le cimetière avec cet ID
            return $this->unModele->selectWhereMembre($idmembre);
        }
 
        public function updateMembre ($tab)//modele ligne 234
        {
            //Modification du membre
            $this->unModele->updateMembre($tab);
        }
 
/******************************************Gestion des projets******************************************/
 
        public function selectAllProjets()//modele ligne 291
         {
            return $this->unModele->selectAllProjets();
         }
 
        public function insertProjet ($tab)//modele ligne 326
        {
            $this->unModele->insertProjet($tab);
        }
 
        public function deleteProjet ($idprojet)//modele ligne 346
        {
            $this->unModele->deleteProjet($idprojet);
        }
 
        public function selectWhereProjet ($idprojet)//modele ligne 364
        {
            //on récupère l'entrepôt avec cet ID
            return $this->unModele->selectWhereProjet($idprojet);
        }
 
        public function updateProjet ($tab)//modele ligne 328
        {
            //Modification de l'entrepôt
            $this->unModele->updateProjet($tab);
        }
 
    }
?><br><br>




Pour la vue Select accueil (c'est le bordel ; je voudrais obtenir un tableau avec le nom du projet, la somme collectée et pourquoi pas la note).

<table class="affichage" border= 1>
    <tr>
 
        <th> Commentaire </th>
        <th> Date </th>
        <th> Pays </th>
        <th> Ville </th>
        <th> Somme </th>
        <th> Téléphone </th>
 
 
    </tr>
    <?php
        foreach ($lesCommentaires as $unCommentaire)
        {
            echo"
            <tr>
                <td>".$unCommentaire['idcomment']."</td>
                <td>".$unCommentaire['datecomment']."</td>
                <td>".$unCommentaire['contenu']."</td>
                <td>".$unCommentaire['note']."</td>
            </tr>";
        }
 
        foreach ($lesDons as $unDon)
        {
            echo"
            <tr>
                <td>".$unDon['iddon']."</td>
                <td>".$unDon['datedon']."</td>
                <td>".$unDon['somme']."</td>
                <td>".$unDon['appreciation']."</td>
            </tr>";
        }
 
        foreach ($lesMembres as $unMembre)
        {
            echo"
            <tr>
                <td>".$unMembre['idmembre']."</td>
                <td>".$unMembre['nom']."</td>
                <td>".$unMembre['prenom']."</td>
                <td>".$unMembre['adresse']."</td>
                <td>".$unMembre['tel']."</td>
                <td>".$unMembre['email']."</td>
                <td>".$unMembre['mdp']."</td>
            </tr>";
        }
 
        foreach ($lesProjets as $unProjet)
        {
            echo"
            <tr>
                <td>".$unProjet['description']."</td>
                <td>".$unProjet['datelancement']."</td>
                <td>".$unProjet['pays']."</td>
                <td>".$unProjet['ville']."</td>
                <td>".$unProjet['budget']."</td>
                <td>".$unProjet['sommecollectee']."</td>
            </tr>";
        }
    ?>
</table>



Pour la vue AjoutProjet


<h3>Ajout d'un projet</h3>


<form class="tabajt" method ="post" action="">
<div class="ajt">
<table class="Ajout" border=0>

<?php echo ($unProjet==null)?"":"<input type='hidden' name='idprojet' value='".$unProjet['idprojet']."'>"?>

<tr><td>ID Projet :</td><td><input type="text" name="idprojet"
value="<?php echo ($unProjet==null)?"":$unProjet['idprojet']; ?>"></td></tr>

<tr><td>Description :</td><td><textarea name="description" id="description" rows="10" cols="50"
value="<?php echo ($unProjet==null)?"":$unProjet['description']; ?>"></textarea></td></tr>

<tr><td>Date du lancement :</td><td><input type="date" name="datelancement"
value="<?php echo ($unProjet==null)?"":$unProjet['datelancement']; ?>"></td></tr>

<tr><td>Pays :</td><td><input type="text" name="pays"
value="<?php echo ($unProjet==null)?"":$unProjet['pays']; ?>"></td></tr>

<tr><td>Ville :</td><td><input type="text" name="ville"
value="<?php echo ($unProjet==null)?"":$unProjet['ville']; ?>"></td></tr>

<tr><td>Budget :</td><td><input type="number" name="budget"
value="<?php echo ($unProjet==null)?"":$unProjet['budget']; ?>"></td></tr>

<tr><td>Somme collectée :</td><td><input type="number" name="sommecollectee"
value="<?php echo ($unProjet==null)?"":$unProjet['sommecollectee']; ?>"></td></tr>

<tr class="divbouton">
<td><input class="bouton" type="submit" name="Valider" value="Valider"></td>
<td class="bouton1"><input class="bouton" type="reset" name="Annuler" value="Annuler"></td>
<?php echo ($unProjet==null)?"</td>":"<input class='bouton' type='submit' name='Modifier' value='Modifier'></td>"; ?>
</tr>
</table>
</div>
</form>



Pour la vueSelectProjet

<h3> Liste des projets </h3>
 
<table class="affichage" border= 1 >
         <tr><th> ID Projet </th>
            <th> Description </th>
            <th> Date du lancement </th>
            <th> Pays </th>
            <th> Ville </th>
            <th> Budget </th>
            <th> Somme collectée </th>
 
          </tr>
 
    <?php
 
    foreach ($lesProjets as $unProjet)
        {
        echo "<tr>  <td>".$unProjet['idprojet']."</td>
                  <td>".$unProjet['description']."</td>
                 <td>".$unProjet['datelancement']."</td>
                  <td>".$unProjet['pays']."</td>
                  <td>".$unProjet['ville']."</td>
                  <td>".$unProjet['budget']."</td>
                  <td>".$unProjet['sommecollectee']."</td>
                    <td><a href='index.php?page=6&action=s&idprojet=".$unProjet['idprojet']."'><img class='trash'src='trash.png'></img></a>
                     <a href='index.php?page=6&action=u&idprojet=".$unProjet['idprojet']."'><img class='edit'src='edit.png'></img></a></td>
            </tr>";
        }
    ?>
</table>


Dernier problème, il est marqué à chaque mois insertion réussie du projet (et aussi membre, commentaire et don) mais ne le vois pas en bas de ma page projet (et aussi membre, commentaire et don) ni en bas de ma page d'accueil (dans le "tableau-bordel" : d'où vient l'erreur selon vous ?

Avant que je fasse la présentation de mon projet DEMAIN MATIN à 8h ?

Merci encore !!

EDIT: Correction des balises de code.
Ajout du LANGAGE pour avoir la coloration syntaxique

Messages postés
33126
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 juillet 2021
3 635
Pour commencer,
Merci, à l'avenir, d'utiliser correctement les balises de code ( en y précisant le LANGAGE )
Explications à lire ENTIEREMENT disponible ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

Ensuite, tu n'as pas appliqué les consignes qui se trouvent dans le lien que je t'avais donné :
https://www.commentcamarche.net/faq/46512-pdo-gerer-les-erreurs

Et enfin.... ben.. désolé mais... j'ai beau relire plusieurs fois... je ne comprend pas ta question....
Il faudrait que tu essayes de reformuler de façon plus claire.
Que tu indiques quelle partie du code exactement te pose problème ( au lieu de nous coller le code de tous tes fichiers...)
Expliquer ce que tu obtiens et indiquer en quoi ça ne correspond pas à ton besoin.
Dans l'idéal, il faudrait également nous indiquer si, selon toi, le souci concerne la partie vue, Controller ou le model ....

La présentation a été repoussée.


J'ai pu corriger les erreurs.

Dernier problème, les ajouts ne s'affichent pas dans les tableaux (accueil du site et page du projet / commentaire ...) malgré "linsertion réussie". Comment faire ?
Messages postés
33126
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 juillet 2021
3 635
Ben comme on est pas encore doués du pouvoir de télépathie ... impossible de savoir ce que tu as éventuellement corrigé ...
ni même à quoi correspond ton "linsertion réussie" ....

Va falloir faire quelques efforts sur la rédaction de tes questions si tu espères obtenir de l'aide ici (ou ailleurs... )

Donc :


1 - N'oublie pas de suivre les conseils qui se trouvent dans le premier lien que je t'avais donné : https://www.commentcamarche.net/faq/46512-pdo-gerer-les-erreurs

2 - Si tu as des redirections dans ton code, pense à les désactiver le temps des tests pour pouvoir voir les éventuels
messages d'erreur..

3 - Montres nous le code concerné ( en utilisant les BALISES DE CODE et en y indiquant le LANGAGE tel qu'expliqué ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code)


private $pdo ;

public function __construct ()
{
try
{

$this->pdo = new PDO("mysql:host=localhost;dbname=secours", "root", "");
}
catch (PDOException $exp)
{
echo "Erreur de connexion au serveur localhost/secours";
echo $exp->getMessage();
}
}


De plus, je ne sais comment ça se fait mais le code suivant ne fait (apparemment) que de l'affichage et pas d'insertion : or, je souhaite que lorsque je l'insère le projet, le don ... il s'affiche dans les tableaux.


<table class="affichage" border= 1>
<tr>

<th> Date du lancement </th>
<th> Pays </th>
<th> Somme collectée </th>

</tr>
<?php



foreach ($lesProjets as $unProjet)
{
echo"
<tr>
<td>".$unProjet['datelancement']."</td>
<td>".$unProjet['pays']."</td>
<td>".$unProjet['sommecollectee']."</td>
</tr>";
}
?>
</table>



Pour l'insertion réussie : voici un élément de réponse :


//appel de la vue insert
require_once("vue/vueAjoutMembre.php");
if (isset ($_POST["Valider"]))
{
$unControleur->insertMembre($_POST);
echo "<br/> <p>Insertion réussie du membre</p> <br/>";
}

Messages postés
33126
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 juillet 2021
3 635
Visiblement tu as du mal à lire ....
Je t'invite donc à relire COMPLETEMENT et en prenant le temps de bien comprendre le contenu de CHAQUE LIEN que je t'ai donné.
Tu n'as rien appliqué de ce qui s'y trouve.....
*

Si, j'ai TOUT relu pourtant mais peut-être pas TOUT compris ... mais merci de m'aider afin que cette fois-ci, ce soit LA BONNE !
Messages postés
33126
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 juillet 2021
3 635
Comme je ne peux pas deviner ce que tu ne "comprends" pas .... il va falloir que tu me dises quelle partie tu ne ne comprends pas dans le contenu de ce lien : https://www.commentcamarche.net/faq/46512-pdo-gerer-les-erreurs#activer-l-affichage-des-erreurs-pdo

Puis, si tu as du mal à comprendre un truc qui est écrit ici https://www.commentcamarche.net/faq/46512-pdo-gerer-les-erreurs#detecter-les-erreurs-dans-les-requetes

par ce que... c'est écrit plutôt clairement... et avec des lignes de code en exemple....

Idem pour l'utilisation des balises de code... le texte qui explique n'est pas assez simple ? les captures d'écran ne sont pas assez lisibles ?
Dis moi .. par ce que j'ai beau lire et relire ... je ne vois pas ce que tu ne comprends pas dans :
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code#comment-les-utiliser
et la phrase que je t'avais marqué

en utilisant les BALISES DE CODE et en y indiquant le LANGAGE tel qu'expliqué ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code


Alors, comme tu le dis si bien .. j'espère que cette fois ça sera la BONNE...