Variables de classe dans une fonction

Résolu/Fermé
parousky Messages postés 325 Date d'inscription mardi 11 septembre 2012 Statut Membre Dernière intervention 20 février 2022 - 5 févr. 2016 à 19:17
parousky Messages postés 325 Date d'inscription mardi 11 septembre 2012 Statut Membre Dernière intervention 20 février 2022 - 5 févr. 2016 à 19:51
Bonjour,
j'essaye de faire un code tout simple en php, je créé une classe user qui a pour paramètre $id (l'identifiant de l'utilisateur). Et j'ai une fonction qui permet de récupérer son nom en allant chercher dans ma bdd avec son id.

Alors j'ai écris ça :


class connect
{
public function connexion()
{
try
{
$bdd = new PDO('mysql:host=localhost;dbname=fame', 'root', ''); // Base localhost
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}

if($bdd)
{
return $bdd;
}
}
}
class user
{

public $id;

public function __construct($id)
{
$this->$id = $id;
}

public function getName()
{

$name = "";
$c = new connect();
$bdd = $c->connexion();

$req = $bdd->prepare('SELECT Nom, Prenom FROM users WHERE
ID=? LIMIT 1');
$req->execute(array($this->$id));
$donnees = $req->fetch();
if($donnees)
{
$name = ''.$donnees['Prenom'].' '.$donnees['Nom'].'';

}
else
{
$name = "Bitch";
}

return $name;
}




}

$u = new user(1);
echo $u->getName();



Mais ça me renvoit une erreur dans getName() comme quoi la variable id utilisée dans la requête n'existe pas...

Voyez-vous l'erreur que j'ai fait ? (surement énorme je sais...)

Merci d'avance !

3 réponses

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
5 févr. 2016 à 19:20
Bonjour
essaye $this->id (sans le $ devant id )
0
parousky Messages postés 325 Date d'inscription mardi 11 septembre 2012 Statut Membre Dernière intervention 20 février 2022 6
5 févr. 2016 à 19:50
Il n'y a plus d'erreur mais ça me renvoit le mot anglais très mal poli que j'ai oublié d'enlever de mon code... Autrement dit, il me dit que la réponse de la requête est vide, alors que ce n'est pas le cas dans ma bdd...
0
parousky Messages postés 325 Date d'inscription mardi 11 septembre 2012 Statut Membre Dernière intervention 20 février 2022 6
5 févr. 2016 à 19:51
Autant pour moi, je n'avais pas fait la même modif dans le contrôleur...
Ca fonctionne merci !
0