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

K_!!!
Invité n'ayant pas de compte PHPfrance

04 oct. 2006, 19:14

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:

Mammouth du PHP | 19672 Messages

04 oct. 2006, 19:28

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);
//...
?>
:?:
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

04 oct. 2006, 19:40

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.

Mammouth du PHP | 19672 Messages

04 oct. 2006, 23:42

Si tu fais un var_dump($this->resultSQL), ça t'affiche quoi au juste ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

05 oct. 2006, 10:05

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)".

Mammouth du PHP | 19672 Messages

05 oct. 2006, 19:53

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
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 1029 Messages

06 oct. 2006, 11:48

Bonjour,

C'est n'est pas du au fait que dans la func2, on change la valeur de $resultSQL via la func1?
L'expérience est la somme de toutes nos erreurs.