POO ajout d'objet dans la BDD : rien ne se passe
Résolu/Fermé
stupidon737
Messages postés
56
Date d'inscription
mercredi 21 mars 2012
Statut
Membre
Dernière intervention
13 octobre 2020
-
8 avril 2013 à 08:51
stupidon737 Messages postés 56 Date d'inscription mercredi 21 mars 2012 Statut Membre Dernière intervention 13 octobre 2020 - 8 avril 2013 à 16:01
stupidon737 Messages postés 56 Date d'inscription mercredi 21 mars 2012 Statut Membre Dernière intervention 13 octobre 2020 - 8 avril 2013 à 16:01
A voir également:
- POO ajout d'objet dans la BDD : rien ne se passe
- Vente objet occasion entre particulier - Guide
- Ajout rapide snap - Forum Snapchat
- Ajout snap signification - Forum Snapchat
- Ouvrez ce fichier avec un éditeur de texte simple (bloc-notes, textedit, gedit, etc.) pour y découvrir le nom d’un objet. ✓ - Forum Études / Formation High-Tech
- Echec de l'acquisition de l'objet com de virtualbox ✓ - Forum Windows
8 réponses
Utilisateur anonyme
8 avril 2013 à 09:26
8 avril 2013 à 09:26
Salut salut,
Dans ta fonction add, au moment ou tu fais le bind des paramètres :
Le message d'erreur te dis que le nom n'est pas instancié, quand tu fais $perso->nom() c'est comme si tu lui demandais d'exécuter la méthode nom or elle n'existe pas. Enlève les parenthèse pour faire référence au paramètre "nom" de l'objet : $perso->nom
Dans ta fonction add, au moment ou tu fais le bind des paramètres :
... $q->bindValue(':nom', $perso->nom()); ...
Le message d'erreur te dis que le nom n'est pas instancié, quand tu fais $perso->nom() c'est comme si tu lui demandais d'exécuter la méthode nom or elle n'existe pas. Enlève les parenthèse pour faire référence au paramètre "nom" de l'objet : $perso->nom
stupidon737
Messages postés
56
Date d'inscription
mercredi 21 mars 2012
Statut
Membre
Dernière intervention
13 octobre 2020
3
8 avril 2013 à 09:46
8 avril 2013 à 09:46
En supprimant les parenthèse, donc on a : $q->bindValue(':nom', $perso->nom); ca a generé une erreur :
Mais je pense que ce n'était pas au niveau de la methode puisqu'il existe dans le fichier classes/Personnage.classes.php.
On a bien une methode getter :
public function nom()
{
return $this->_nom;
}
mais c'est qui se passe c'est qu'il semble que la fonction add n'a pas pu recuperer cette valeur de retour ? Et si c'est ca qu'est ce qui manque ?
Notice: Undefined property: Personnage::$nom in D:\wamp\www\POO\Donnees-stockees\cop-coller.php on line 103
Mais je pense que ce n'était pas au niveau de la methode puisqu'il existe dans le fichier classes/Personnage.classes.php.
On a bien une methode getter :
public function nom()
{
return $this->_nom;
}
mais c'est qui se passe c'est qu'il semble que la fonction add n'a pas pu recuperer cette valeur de retour ? Et si c'est ca qu'est ce qui manque ?
stupidon737
Messages postés
56
Date d'inscription
mercredi 21 mars 2012
Statut
Membre
Dernière intervention
13 octobre 2020
3
8 avril 2013 à 09:58
8 avril 2013 à 09:58
désolé alors pour cette convention.
Je suis toujours prenant pour d'autres suggestion de ta part.
Je suis toujours prenant pour d'autres suggestion de ta part.
Utilisateur anonyme
Modifié par kyser soze le 8/04/2013 à 10:18
Modifié par kyser soze le 8/04/2013 à 10:18
Alors moi j'aime bien les constructeur en objet :p
Comme ça je n'ai pas vu l'endroit où ça bug, tu peux essayer de faire un echo de la requête juste avant le execute() pour voir à quoi elle ressemble.
Juste comme ça, dans test_personnage_bdd.php si tu fais echo $perso->nom(); après la création du perso, il renvoit bien le nom?
Résolu? ===> [RESOLU]
Comme ça je n'ai pas vu l'endroit où ça bug, tu peux essayer de faire un echo de la requête juste avant le execute() pour voir à quoi elle ressemble.
Juste comme ça, dans test_personnage_bdd.php si tu fais echo $perso->nom(); après la création du perso, il renvoit bien le nom?
Résolu? ===> [RESOLU]
stupidon737
Messages postés
56
Date d'inscription
mercredi 21 mars 2012
Statut
Membre
Dernière intervention
13 octobre 2020
3
8 avril 2013 à 10:34
8 avril 2013 à 10:34
echo $perso->nom(); ne retourne rien sur la page.
stupidon737
Messages postés
56
Date d'inscription
mercredi 21 mars 2012
Statut
Membre
Dernière intervention
13 octobre 2020
3
8 avril 2013 à 10:35
8 avril 2013 à 10:35
donc c'est au niveau de cette methode qui pose problème. Des liaisons qui manquent peut-être ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Utilisateur anonyme
Modifié par kyser soze le 8/04/2013 à 10:53
Modifié par kyser soze le 8/04/2013 à 10:53
Est ce que tu es sûr de la syntaxe pour la construction de l'objet personnage?
Habituellement j'utilise des constructeurs pour créer mes objets.
Parce que tu fais :
Or les noms des variables de l'objet Personnage sont écrites avec un"_" devant (_nom,_forcePerso , etc), ça doit être pour cela que lorsque tu fais $perso->nom() il ne renvoie rien
Résolu? ===> [RESOLU]
Habituellement j'utilise des constructeurs pour créer mes objets.
Parce que tu fais :
$perso = new Personnage(array( 'nom' => 'Victor', 'forcePerso' => 5, 'degats' => 0, 'niveau' => 1, 'experience' => 0, ));
Or les noms des variables de l'objet Personnage sont écrites avec un"_" devant (_nom,_forcePerso , etc), ça doit être pour cela que lorsque tu fais $perso->nom() il ne renvoie rien
Résolu? ===> [RESOLU]
stupidon737
Messages postés
56
Date d'inscription
mercredi 21 mars 2012
Statut
Membre
Dernière intervention
13 octobre 2020
3
8 avril 2013 à 15:34
8 avril 2013 à 15:34
J'ai essayé avec plusieurs syntaxe dont :
'_nom' => 'Victor',
$_nom => 'Victor',
$this->nom() => 'Victor',
$this->nom => 'Victor',
mais sans succès.
'_nom' => 'Victor',
$_nom => 'Victor',
$this->nom() => 'Victor',
$this->nom => 'Victor',
mais sans succès.
Utilisateur anonyme
8 avril 2013 à 15:50
8 avril 2013 à 15:50
Je ne sais pas si on peut crée un objet comme tu l'as fait , essais ça, ça devrait fonctionner :
Sinon fais un constructeur ou une méthode équivalente.
$perso=new Personnage(); $perso->setNom("Victor"); $perso->setForcePerso(10); $perso->setDegats(0); $perso->setNiveau(1); $perso->setExperience(1);
Sinon fais un constructeur ou une méthode équivalente.
stupidon737
Messages postés
56
Date d'inscription
mercredi 21 mars 2012
Statut
Membre
Dernière intervention
13 octobre 2020
3
8 avril 2013 à 16:01
8 avril 2013 à 16:01
Merci beaucoup à cette baguette kyser !!! Ca marche avec ca.