Petit nouveau ! |
2 Messages
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";
}
?>
Modifié en dernier par
moogli le 22 juil. 2013, 22:00, modifié 1 fois.
Raison : ajout bb code !