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

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Appel d'une méthode par une autre dans une même classe

par Maitrepylos » 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?

par Cyrano » 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

par Invité » 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)".

par Cyrano » 04 oct. 2006, 23:42

Si tu fais un var_dump($this->resultSQL), ça t'affiche quoi au juste ?

par Invité » 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.

par Cyrano » 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);
//...
?>
:?:

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

par K_!!! » 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: