Programmation Orienté Objet

Résolu
labourette Messages postés 657 Date d'inscription   Statut Membre Dernière intervention   -  
labourette Messages postés 657 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Je débute en POO et je souhaiterai pouvoir afficher tous les membres, pouvez vous m'aider un peu en me donnant quelques explications un peu détaillé s'ils vous plait.

J'ai ma class User, avec quelques méthodes, le systéme de connexion est fait j'affiche les infos du membre connecté comme ceux-ci.
<td><?php echo $user->getNom(); ?></td>

Et pour afficher tous les membres vous pouvez me donner quelques explications, car je nage malgrès beaucoup de lecture de tutos sur le sujet, mais en ayant des exemple concret j'y verrai plus clair.
En vous remerciant beaucoup.

47 réponses

labourette Messages postés 657 Date d'inscription   Statut Membre Dernière intervention   6
 
Bonjour
C'est encore moi j'aurai besoin encore de toi s'il te plait.
Il y a aussi quelque chose de pas normal. Lorsque je fait une modif mon formulaire à l'affichage ne garde pas les valeurs, je suis obligé de me déconnecter puis me reconnecter pour que les modifs soient afficher dans le formulaire.
Merci j'espère que tu comprends ce que je veux dire.
0
totodunet Messages postés 1377 Date d'inscription   Statut Membre Dernière intervention   200
 
salut,

Mais voilà dans ma tête c'est pas clair du tout.
Déjà pourquoi dans le WHERE il n'y a pas plutôt
WHERE id_adherent= id_adherent');


je ne sais pas c'est toi le programmeur qui a écrit cela^^

si tu fais
where id_adherent=id_adherent
cela c'est stupide car tu demandes l'id_adherent de la table tb_adherent où l'id_adherent est égal à une valeur. Autrement si la valeur est 5, tu demandes d'afficher le numéro de l'adhérent numéro 5 donc grosso modo 5.

mais maintenant j'ai pu voir où est le problème, $this->id_adherent n'a pas de valeur car visiblement après ton select tu lui en affectes une.


mais ce que j'avais demandé, c'était plutôt ça :

public function update() {
        $req = self::$db->prepare('UPDATE tb_adherent SET nom = :nom, prenom = :prenom, email = :email, naissance = :naissance, fixe = :fixe, mobile = :mobile, adresse = :adresse, lieu_dit = :lieu_dit, code_postal = :code_postal, ville = :ville, username = :username, password = :password WHERE id_adherent = :id_adherent');
        $req->bindParam(':id_adherent',     $this->id_adherent,     PDO::PARAM_INT);        
        $req->bindParam(':nom',             $this->nom,             PDO::PARAM_STR);
        $req->bindParam(':prenom',          $this->prenom,          PDO::PARAM_STR);
        $req->bindParam(':email',           $this->email,           PDO::PARAM_STR);
        $req->bindParam(':naissance',       $this->naissance,       PDO::PARAM_STR);
        $req->bindParam(':fixe',            $this->fixe,            PDO::PARAM_STR);
        $req->bindParam(':mobile',          $this->mobile,          PDO::PARAM_STR);
        $req->bindParam(':adresse',         $this->adresse,         PDO::PARAM_STR);
        $req->bindParam(':lieu_dit',        $this->lieu_dit,        PDO::PARAM_STR);
        $req->bindParam(':code_postal',     $this->code_postal,     PDO::PARAM_STR);
        $req->bindParam(':ville',           $this->ville,           PDO::PARAM_STR);
        $req->bindParam(':username',        $this->username,        PDO::PARAM_STR);
        $req->bindParam(':password',        $this->password,        PDO::PARAM_STR);
        echo $req;
        $req->execute();
    }


voir ce qu'affiche le contenu de $req et exécuter la ligne dans ton SGBD pour savoir quelles erreurs vont pas.


Qui ne tente rien n'a rien
0
labourette Messages postés 657 Date d'inscription   Statut Membre Dernière intervention   6
 
Bonjour
Dis moi juste quelle ligne j'affiche dans ma BDD?
parce que avec
echo $req ça retourne
Catchable fatal error: Object of class PDOStatement could not be converted to string in C......

sinon ok j'avais pas pensé
where id_adherent=id_adherent
0
totodunet Messages postés 1377 Date d'inscription   Statut Membre Dernière intervention   200
 
bonsoir,

étrange... mais au vu que ton select que tu fais dans update() fait fonctionner la méthode update(), je parie que le problème est this->adherent qui n'est pas initialisé. fais echo this->adherent au début de update pour voir si il a une valeur.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
labourette Messages postés 657 Date d'inscription   Statut Membre Dernière intervention   6
 
Bonjour
Je ne sais pas si c'est bien ici qu'il faut faire le echo mais si c'est le cas ça me retourne
parse error: syntax error, unexpected T_VARIABLE, expecting ',' or ';' in C:

public function UpdateMembre() {
        echo $this->id_adherent
        $req = self::$db->prepare('SELECT id_adherent FROM tb_adherent WHERE username = :username');
        $req->bindParam(':username', $this->username, PDO::PARAM_STR);
        $req->execute();
        $this->id_adherent = $req->fetchColumn();

sinon le SELECT est-il vraiment indispensable? c'est juste une question en fait comme je débute en POO.
Merci
0
totodunet Messages postés 1377 Date d'inscription   Statut Membre Dernière intervention   200
 
bonsoir,

mets un ';' à la fin du echo!

non le select théoriquement on en a pas besoin si l'attribut id_adherent est déjà initialisé. ce que va nous dire le echo
0
labourette Messages postés 657 Date d'inscription   Statut Membre Dernière intervention   6
 
Bonjour
Donc voilà pour récapituler, après avoir mis echo $this->id_adherent; après le UpdateMembre aucune erreur retournée.
Toutes les modifs s'effectue bien dans ma BDD sauf que pour l'affichage dans le formulaire les données n'apparaissent pas à l'instantanée il faut toujours que je me déconnecte et me reconnecte pour les valeurs prennent effets pour l'affichage.
Merci de ton aide.
0