Tout d'abord, merci à ceux qui vont me lire en entier
J'en appelle aux experts car là je ne comprends pas d'où vient mon erreur...
Mon but est d'avoir, dans la méthode les_eleves() de la page_securisee.php une liste d'eleves. Je m'explique : On à une liste déroulante contenant le nom de chaque élève et quand on clique sur un nom, les infos concernant cet élève s'affichent.
Cette fonction servira dans modif_eleves() qui n'est pas encore faite, pour que l'on puisse update la bdd apres modification des infos de l'eleve (infos que l'on aura normallement via les_eleves().
Le soucis ? Une erreur que je n'arrive pas à résoudre peu importe la façon dont je m'y prend ! -> Fatal error: Cannot use object of type stdClass as array in C:\Workspace\.....\page_securisee.php on line 64.
Voici donc mes pages (toutes en php objet):
page_securisee.php :
<?php
class page_securisee extends contenu_page {
private $connexion;
public function __construct($p)
{
parent::__construct($p);
include_once('connexpdo.php');
$this->connexion=connexpdo();
}
public function connect() // vide
{
}
public function register() // vide
{
}
# GESTION DES ELEVES
public function ajoute_eleve() // OK
{
// variables recuperées du formulaire
$ecole=$_POST['ecole'];
$nom=$_POST['nom'];
$prenom=$_POST['prenom'];
$date=$_POST['datenaiss'];
$adresse=$_POST['adresse'];
$ville=$_POST['ville'];
$CP=$_POST['CP'];
$sex=$_POST['sex'];
$droit_image=$_POST['droit_image'];
$certif_chu=$_POST['certif_chu'];
$auto_parent=$_POST['auto_parent'];
// requete
$requete = 'insert into eleve values(null,'.$ecole.',"'.$nom.'","'.$prenom.'","'.$date.'","'.$adresse.'","'.$ville.'",'.$CP.',"'.$sex.'","'.$droit_image.'","'.$certif_chu.'","'.$auto_parent.'")';
// echo $requete; // voir si la requete est bonne -> OK
$resultat=$this->connexion->query($requete);
echo "<script>alert('L\'eleve a bien ete enregistre.');</script>";
header('Location: index.php');
}
public function les_eleves()
{
// requete d'affichage des eleves en fonction du nom
$requete='SELECT * FROM eleve;';
$result=$this->connexion->query($requete);
if (!$result)
{
echo 'lecture imposible';
}
else
{
$nb = $result->rowCount();
while ($lignes = $result->fetch(PDO::FETCH_OBJ))
{
echo"<h3>".$lignes['nom']."</h3>";
//echo '<option value="'.$ligne['nom'].'">'.$ligne['prenom'].'</option>';
}
}
$result->closeCursor();
$result = null;
}
public function modif_eleve()
{
// A COMPLETER PLUS TARD
}
public function delete_eleve() // OK
{
// variables recuperées du formulaire
$nom=$_POST['nom'];
$prenom=$_POST['prenom'];
$date=$_POST['datenaiss'];
// requete
$requete = 'delete from eleve where nom="'.$nom.'" and datenaiss="'.$date.'" and prenom="'.$prenom.'"';
// echo $requete; // voir si la requete est bonne -> OK
$resultat=$this->connexion->query($requete);
echo "<script>alert('L\'eleve a bien ete supprime.');</script>";
header('Location: index.php');
}
# GESTION DES ECOLES
public function ajoute_ecole() // OK
{
// variables recuperées du formulaire
$ecole=$_POST['ecole'];
$nom=$_POST['nom'];
$adresse=$_POST['adresse'];
$ville=$_POST['ville'];
$CP=$_POST['CP'];
$tel=$_POST['tel'];
$fax=$_POST['fax'];
$mail=$_POST['mail'];
$mdp=$_POST['mdp'];
// requete
$requete = 'insert into ecole values('.$ecole.',"'.$nom.'","'.$adresse.'","'.$ville.'",'.$CP.',"'.$tel.'","'.$fax.'","'.$mail.'","'.$mdp.'")';
// echo $requete; // voir si la requete est bonne -> OK
$resultat=$this->connexion->query($requete);
echo "<script>alert('L\'ecole a bien ete enregistree.');</script>";
header('Location: index.php');
}
public function delete_ecole() // OK
{
// variables recuperées du formulaire
$nom=$_POST['nom'];
$mdp=$_POST['mdp'];
// requete
$requete = 'delete from ecole where nom="'.$nom.'" and mdp="'.$mdp.'"';
// echo $requete; // voir si la requete est bonne -> OK
$resultat=$this->connexion->query($requete);
echo "<script>alert('L\'ecole a bien ete supprimee.');</script>";
header('Location: index.php');
}
public function modif_ecole() //
{
// variables recuperées du formulaire
}
}
index.php :<?php // PAGE ACCEUIL
include_once('class/autoload.php'); // pour inclure nos classes
$site = new page_securisee('accueil');
$site->titre = "Accueil";
$site->corps =' <h1> CE SERA LA PAGE D ACCUEIL </h1>
<a href="ajouteleve.php">Ajouter des eleves</a> <br>
<a href="suppreleve.php">Supprimer des eleves</a> <br>
<a href="modifeleve.php">Modifier des eleves</a> <br>
<a href="ajoutecole.php">Ajouter des ecoles</a> <br>
<a href="supprecole.php">Supprimer des ecoles</a>
';
$site->affiche();
?>
modifeleve.php<?php
include_once('class/autoload.php'); // pour inclure nos classes
$site = new page_securisee('');
$site->titre = "INSCRIPTION Eleves";
$site->corps =" Choisir eleve : ";
$site->les_eleves();
contenu_page.php :<?php
class contenu_page {
protected $titre;
protected $style=array('');
protected $javascript=array('');
protected $corps;
protected $page;
private $connexion;
private $i;
public function __construct($p) {
session_start();
$this->page = $p;
}
/*************Gestion des setters *********************/
public function __set($propriete, $valeur) {
switch ($propriete) {
case 'style' : {
$this->style[count($this->style)+1] = $valeur;
break;
}
case 'javascript' : {
$this->javascript[count($this->javascript)+1] = $valeur;
break;
}
case 'corps' : {
$this->corps = $valeur;
break;
}
case 'titre' : {
$this->titre = $valeur;
break;
}
}
}
/*************Gestion du titre *********************/
private function affiche_titre() {
echo $this->titre;
}
/*************Gestion des header *********************/
protected function affiche_header() {
?>
<div id="header">
<h1><a href="index.php" id="logo">USEP49 <em> Maine Et Loire</em></a></h1>
<nav id="nav">
<ul>
<li>
<a href="index.php">Accueil</a>
</li>
<li>
<a href="http://usep49.fr/grr/month_all.php?area=1">Matériel</a>
</li>
<li>
<a href="news.php">Actualités</a>
</li>
<li>
<a href="about.php">A propos</a>
</li>
<li>
<a href="contact.php">Contactez-nous</a>
</li>
<li>
<a href="connexion.php">Connexion</a>
</li>
</ul>
</nav>
</div>
<?php
}
/*************Gestion des styles *********************/
private function affiche_style() {
foreach ($this->style as $s) {
echo "<link rel='stylesheet' href='css/".$s.".css' />\n";
}
}
/*************Gestion du javascript *********************/
private function affiche_js() {
foreach ($this->javascript as $js) {
echo "<script type='text/javascript' src='js/".$js.".js'></script>";
}
}
/******** Gestion du contenu *******************/
private function affiche_corps() {
echo $this->corps;
}
/************** Gestion du Slider ***************************/
public function affiche_banner (){
?>
<section id="banner">
<header>
<a href="#" class="button">Learn More</a>
</header>
</section><?php
}
/************** Gestion des footers ***************************/
private function affiche_footer() {
?>
<p>
<b></b>
</p>
<?php
}
/*************Connexion *********************/
protected function autorize_connexion() {
echo '<form action="#" method="post" name="formulaire">';
echo '<p>Votre nom : <input type="text" name="pseudo" /></p>';
echo '<p><input type="submit" value="Se connecter"></p>';
echo '</form>';
}
/************* Récupération de la connexion *********************/
public function recup_connexion ()
{
if (isset($_POST['identifiant']))
{
if (!empty($_POST['identifiant']))
{
$_SESSION['identifiant']=$_POST['identifiant'];
}
}
}
/************* Déconnexion *********************/
protected function autorize_deconnexion() {
echo '<form action="#" method="post" name="formulaire">';
echo '<input type="hidden" name="deco" />';
echo '<p><input type="submit" value="Déconnexion"></p>';
echo '</form>';
}
/************* Récupération de la déconnexion *********************/
public function recup_deconnexion ()
{
$_SESSION=array();
session_destroy();
}
/******************** Fonction permettant l'affichage de la page **************/
public function affiche() {
$this->recup_connexion();
?>
<!DOCTYPE html>
<html lang='fr'>
<head>
<title>
<?php $this->affiche_titre(); ?>
</title>
<meta charset="utf-8" />
<?php
$this->affiche_style();
$this->affiche_js();
?>
</head>
<body>
<div id="header">
<?php
$this->affiche_header();
if (isset($_SESSION['identifiant']))
{
}
else
{
session_unset();
}
?>
</div>
<section class="wrapper style1">
<div class="container">
<article>
<?php $this->affiche_corps();?>
</article>
</div>
</section>
<div id="footer">
<?php $this->affiche_footer();?>
</div>
</body>
</html>
<?php
}
}
Merci de m'aider à résoudre ce problème