Page 1 sur 1

Appel d'une méthode par une autre dans une même classe

Posté : 04 oct. 2006, 19:14
par K_!!!
Bonjour,

j'ai un petit soucis pour accéder a une méthode depuis une autre.

j'ai dans une classe , une méthode qui me permets d'afficher par exemple un titre, et je voudrais a la suite de ce titre appeler une autre méthode de la même classe...mais malheureusement ca ne marche pas.

voici mon code :

Code : Tout sélectionner

class MaClasse{ public $getDataSql, $resultSQL, $table; function func2($dbCxn) { $this->getDataSql = " SELECT ch1, ch2 FROM maTable"; $this->resultSQL = $dbCxn->query($this->getDataSql) or trigger_error (E_USER_ERROR); if (count($this->resultSQL) > 0 ) { while ($this->table = $this->resultSQL->fetch(PDO::FETCH_ASSOC)) { echo "les resultats sont:".$this->table['ch1']; $this->func1 ($dbCxn, $this->table['ch2']); } } } function func1($dbCxn,$idChamps) { $this->getDataSql = " SELECT ch3 FROM table2 WHERE id ='".$idChamps."'"; $this->resultSQL = $dbCxn->query($this->getDataSql) or trigger_error(E_USER_ERROR); if (count($this->resultSQL) > 0 ) { while ($this->table = $this->resultSQL->fetch(PDO::FETCH_ASSOC) { echo "les resultats sont:".$this->table['ch3']; } } } }
A l'exécution, j'ai une erreur à cette ligne:

Code : Tout sélectionner

$this->func1 ($dbCxn, $this->table['ch2']);
voici la notice:

Code : Tout sélectionner

Fatal Error:Call a member function fetch() on a non-object
Pourriez vous m'expliquer comment accéder a cette méthode,svp?

Par avance merci pour votre aide :wink:

Posté : 04 oct. 2006, 19:28
par Cyrano
Il manque une vérification : que vaut ta propriété de classe $resultSQL après l'appel de
<?php
//...
$this->resultSQL  = $dbCxn->query($this->getDataSql) or trigger_error (E_USER_ERROR);
//...
?>
:?:

Posté : 04 oct. 2006, 19:40
par Invité
re,

en fait prises séparément, les méthodes fonctionnent bien et me retourne le resultats souhaités, mais avec cette syntaxe ... non.

est ce que c'était le sujet de ta question? :oops:

merci encore pour votre aide.

Posté : 04 oct. 2006, 23:42
par Cyrano
Si tu fais un var_dump($this->resultSQL), ça t'affiche quoi au juste ?

Posté : 05 oct. 2006, 10:05
par Invité
Bonjour,

en fait si je fais un var_dump($this->resultSQL) à la fonction func2 il m'affiche:

Code : Tout sélectionner

object(PDOStatement)#3(1) { ["querystring"]=>string(96) "SELECT ch1, ch2 FROM maTable"}
mais à la fonction func1 il ne m'affiche que " bool(false)".

Posté : 05 oct. 2006, 19:53
par Cyrano
Ben je vois pas trop, je peux pas la tester en local, ta méthode semble recevoir en paramètre un objet d'une classe de connexion, classe que je n'ai pas. Et je n'ai pas non plus la base qui va avec, bref, rien de très pratique pour faire des essais :-k

Posté : 06 oct. 2006, 11:48
par Maitrepylos
Bonjour,

C'est n'est pas du au fait que dans la func2, on change la valeur de $resultSQL via la func1?