Bonjour,
Voila je re-crée un post car je pense m'être mal exprimé dans mon post précédent.
Je voudrais savoir comment faire pour executer une requête en POO dans une fonction (fonction récursive me permettant de récupérer les catégories filles).
Voici ma fonction :
function selFilles($idCat=0, $mere='') {
$ret = '';
$req = mysql_query("SELECT id_cat,nom FROM cat WHERE rid_cat='$idCat'");
while ($row = mysql_fetch_array($req)) {
$ret.= ''.$mere.$row['nom'].''."\n";
$ret.= selFilles($row['id_cat'],$mere.$row['nom'].' > ');
}
return $ret;
}
Voici ce qui me pose problème (une requete qui n'est pas executée en POO) :
$req = mysql_query("SELECT id_cat,nom FROM cat WHERE rid_cat='$idCat'");
Je remplace donc cette requete par une requete POO (selon MVC de GrafikArt, tuto Créer un site web de A à Z)
function selFilles($idCat=0, $mere='') {
$ret = '';
// Récupération des données de la table des catégories & Sous Catégories
$d = $this->Category->findz(array(
'fields' => 'Category.id,Category.name,Category.slug,Category.parent_id',
'conditions' => array('Category.parent_id'=>$idCat)
));
while ($row = mysql_fetch_array($d)) {
$ret.= ''.$mere.$row['nom'].''."\n";
$ret.= selFilles($row['id_cat'],$mere.$row['nom'].' > ');
}
return $ret;
}
$d me renvois ceci lorsque j'executé la requete POO en dehors de ma fonction (VUE) :
Array
(
[0] => stdClass Object
(
[id] => 0
[name] => Aucune
[slug] => aucune
[parent_id] => 0
)
[1] => stdClass Object
(
[id] => 17
[name] => Bandagisterie
[slug] => bandagisterie
[parent_id] => 0
)
[2] => stdClass Object
(
[id] => 21
[name] => Confort
[slug] => confort
[parent_id] => 0
)
[3] => stdClass Object
(
[id] => 26
[name] => Mobilite
[slug] => mobilite
[parent_id] => 0
)
[4] => stdClass Object
(
[id] => 34
[name] => Cou
[slug] => cou
[parent_id] => 17
)
[5] => stdClass Object
(
[id] => 33
[name] => Dos
[slug] => dos
[parent_id] => 17
)
[6] => stdClass Object
(
[id] => 35
[name] => epaule
[slug] => epaule
[parent_id] => 17
)
)
Lorsque j'exécute la fonction dans ma vue (sachant que la fonction, elle aussi se trouve dans ma vue.)
SelFilles()
que je ne peux pas utiliser $this dans ma fonction
**Fatal error: Using $this when not in object context in /home/medicalhia/www/fr/view/posts/category.php on line 118**
Pourriez-vous m'expliquer ou m'aider à comprendre pourquoi je ne peux pas utiliser ma requete dans ma fonction ?!
Merci d'avance.
Olivier
Bonjour Grafikart,
Je l'utilise de la même manière que dans mon Postcontroller.php sauf qu'ici je l'ai placé directement dans ma vue (catégories).
Il me permet simplement de récupérer les infos de la table des catégories.
Je pense que si tu me poses cette question, c'est que je ne m'y prends pas correctement du tout...
Mais je voudrais simplement pouvoir afficher mes sous catégories juste en dessous de la catégorie "mère".
Voici le site sur lequel je voudrais le faire :
http://medical-home.be/fr/category/bandagisterie
Les sous-catégories Cou / Dos / Poignet et main / Epaule sont affichées au meme niveau que les catégories mères (par ordre alphabethique).
C'est pourquoi je voudrais utiliser cette fameuse fonction qui me permetterait de les afficher au bon endroit me semble-t-il... !?
Est-ce que je dois me diriger vers une autre solution ?!
Merci d'avance à tous.
Normalement, ton PostController est une classe. $this, dans une classe, représente l'instance de la classe. Tu ne peux donc pas l'utiliser dans une fonction qui n'est pas une méthode