Bonjour a touts et toutes.
Aujourd'hui je me suis attaquer a la partie POO pourvoir un peut le fonctionnement de la programmation orienter objets, mais dans le tutoriel je tombe sur une petite erreur j'ai chercher pendant une grosse demi heure en changent quelque chose mais je n'arrive pas a trouver.
Alors je vous affiche mon code pourriez-vous jeter un œil pour voir si ce n'est pas moi qui fait une erreur merci d'avance Paphio-King.
Voici le code de la page model/category.php
<?php
class Category{
public $id;
function read($fields=null){
if($fields==null){
$fields = "*";
}
$sql = "SELECT $fields FROM categories WHERE id=" . $this->id;
$req = mysql_query($sql) or die(mysql_error());
$data = mysql_fetch_assoc($req);
return $data;
foreach($data as $k=>$v){
$this->$k = $v;
}
}
}
$Category = new Category();
?>
voici le code de la page core.php
<?php
mysql_connect('localhost','root','');
mysql_select_db('poo_mysql');
mysql_query("SET NAMES 'utf8'");
require("model/category.php");
?>
voici le code de la page index.php
<?php
require "core.php";
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title></title>
<meta name="" content="">
</head>
<body>
<p>
<?php
$Category->id=2;
$Category->read();
echo $Category->name;
?>
</p>
</body>
</html>
Alors quand j'essaie d'afficher $Category->name; sur l'index il me donne se message d'erreur a l'affichage.
Notice: Undefined property: Category::$name in C:\xampp\htdocs\poo_mysql\index.php on line 15
Voila merci d'avance si vous avez des questions n'hésiter pas.
Paphio-King
essaye déjà de faire un var_dump($Category->read()) qui te retournera $data .
Autre point tu fais un return $data avant ton foreach or cela veut dire que ton code n'ira jamais exécuter le foreach qu'il y a en dessous
Tout est dans l'erreur.
Tu n'as définit nul part : $Category->name
Si c'est le code ci-dessous (model/category.php - ligne 15) qui définit la variable $Category->name alors tu dois mettre le return (ligne 13) après le foreach.
foreach($data as $k=>$v){
$this->$k = $v;
}
Un grand merci à vous deux, j'ai trouvé grâce a vos explications c'était bien juste mettre le return $data; en dessous du foreach.
Ce qui est logique d'ailleurs dans le code nom orienter objet.
Je vous jure c'était la Belgique qui jouait hier mais, je n'avais pas encore bu.
Aller un grand merci a vous deux a bientôt au tour d'un autre post.
Bonne semaine Paphio-King.