Call to a member function getResultats() on a non-object

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 : Call to a member function getResultats() on a non-object

Re: Call to a member function getResultats() on a non-object

par Winnymaru » 23 juil. 2013, 12:27

Bonjour,

Il a une erreur dans le constructeur de ta classe Etudiant.

Essaye de remplacer :
$lResultats = new ListeResultats();
par :
$this->lResultats = new ListeResultats();

Re: Call to a member function getResultats() on a non-object

par lhabib » 22 juil. 2013, 22:30

tu veux dire que je le mettrerai dans php debutant c'est ca

Re: Call to a member function getResultats() on a non-object

par moogli » 22 juil. 2013, 22:04

Modération :
Afin d'améliorer la lisibilité de ton message,
pense à utiliser les balises [code] ou [php] (selon le langage utilisé).

Elles sont disponibles au-dessus de la zone de saisie de ton message
lorsque tu postes un nouveau message.

Des indications sont disponibles sur la manière de mettre en forme vos messages dans la FAQ


salut,

tu essai d'utiliser une méthode sur quelque chose qui n'est pas un objet, donc tu a une erreur.

en clair ce que tu pense être un objet est null ou une valeur "simple" (entier, chaine etc)

vu la densité du code je vais pas plus loin sans un condensé du code et le message d'erreur.
de plus de déplace ton message dans la section "php débutant"

@+

Call to a member function getResultats() on a non-object

par lhabib » 22 juil. 2013, 07:27

Salut je suis débutant en php, j'ai trois classe Etudiant, ListResultat(les résultats des tests passés par ce étudiant), EtudiantDao(intermédiaire entre la classe Etudiant et la Base de donnée), et le fichier testDaoEtudiant, ce dernier ne sert qu'a tester la classe EtudiantDao et j'ai l'erreur Call to a member function getResultats() on a non-object , le problème est situé dans la classe EtudiantDao dans la méthode create, svp aidez moi.
<?php
require_once('ListResultats.class.php')
class Etudiant {
	private $idEtudiant="";
	private $nomEtudiant="";
    private $prenom="";
	private $nomUtilisateur="";
	private $motDePasse="";
	private $lResultats;

	public function __construct()	//Constructeur
	{
		$lResultats = new ListeResultats();
	}	
	public function getIdEtudiant()
	{
			return $this->idEtudiant;
	}
	
	public function setIdEtudiant($idEtudiant)
	{
			$this->idEtudiant = $idEtudiant;
	}
	public function getNomEtudiant()
	{
			return $this->nomEtudiant;
	}
	
	public function setNomEtudiant($nomEtudiant)
	{
			$this->nomEtudiant = $nomEtudiant;
	}
    
	public function getPrenom()
	{
			return $this->prenom;
	}
	
	public function setPrenom($prenom)
	{
			$this->prenom = $prenom;
	}
	
	public function getNomUtilisateur()
	{
			return $this->nomUtilisateur;
	}
	
	public function setNomUtilisateur($nomUtilisateur)
	{
			$this->nomUtilisateur = $nomUtilisateur;
	}
	
	public function getMotDePasse()
	{
			return $this->motDePasse;
	}
	
	public function setMotDePasse($motDePasse)
	{
			$this->motDePasse = $motDePasse;
	}
	
	public function getListResultats()
	{
			return $this->lResultats;
	}
	
	public function setListResultats($lResultats)
	{
			$this->lResultats = $lResultats;
	}
	
	public function __toString()
	{
		return "Etudiant{".$this->idEtudiant.",".$this->nomEtudiant.",".$this->prenom."}";
	}
}
?>
<?php
require_once('Navigable.interface.php');
require_once('Resultat.class.php');

class ListeResultats
{
	private $resultats;
	public function __construct()	//Constructeur
	{
		$this->resultats = array();
	}	
	
	public function add($r)
	{
			array_push($this->resultats,$r);  
	}
	
	public function getResultats()
	{
			return ($this->resultats);      
	}	
}
?>
<?php
include_once('../classes/Etudiant.class.php'); 
include_once('../classes/ListResultats.class.php'); 
include_once('../classes/Resultat.class.php'); 
require_once('../classes/Database.class.php'); 

class EtudiantDAO
{	
	public function create($et)
	{
		if($this->exist($et))
			{
				return false;
			}else
			{
				try
				{
					$request1 = "INSERT INTO etudiant (idEtudiant, nomEtudiant, prenom, nomUtilisateur, motDePasse) VALUES     ('".$et->getIdEtudiant()."','".$et->getNomEtudiant()."','".$et->getPrenom()."','".$et->getNomUtilisateur()."','".$et->getMotDePasse()."')";
					$db = Database::getInstance();
					$lResultats = $et->getListResultats();
					if(Count($lResultats->getResultats()) > 0) 
					{
						while($listeResultats->next())
						{
							$request2 = "INSERT INTO resultat (idEtudiant, idTest, scoreTest, dateHeureTest) VALUES ('".$et->getIdEtudiant()."','".$listeResultats->getResultatCurrent()->getIdTest()."','".$listeResultats->getResultatCurrent()->getScoreTest()."','".$listeResultats->getResultatCurrent()->getDateHeureTest()."')";
							$db->exec($request2);
						}
					}
					return $db->exec($request1);
				}
				catch(PDOException $e)
				{
					throw $e;
				}
			}
	}
	
}
?>

<h3>PDO :</h3>
<?php
require_once('../classes/Etudiant.class.php');
require_once('../classes/ListEtudiants.class.php');
require_once('../DAO/EtudiantDAO.class.php');

$dao = new EtudiantDAO();
  
$etudiant1 = new Etudiant();  

$etudiant1->setIdEtudiant("e3");
$etudiant1->setNomEtudiant("Benaddi");
$etudiant1->setPrenom("Hassan");
$etudiant1->setNomUtilisateur("chel26017903");
$etudiant1->setMotDePasse("bobo78");

echo $etudiant1;

if ($dao->create($etudiant1))
	echo "<br />Le Etudiant ".$etudiant1->getIdEtudiant()." est cree";
?>
<?php
require_once('../configs/config.php');
class Database
{	
	private static $connexion = null;
	
	private function __construct() {}
	
	public static function getInstance()
	{
		if(self::$connexion == null)
			self::$connexion = new PDO(
				"mysql:host=".Config::DB_HOST.";dbname=".Config::DB_NAME."", 
				Config::DB_USER, 
				Config::DB_PWD);
		return self::$connexion;
	}
}
?>
<?php	
	interface Config
	{	
		const URL = "localhost/TestAcademique";
		const DB_HOST = "localhost";
		const DB_USER = "root";
		const DB_PWD = "";
		const DB_NAME = "bdtests";
	}
?>