Bonjour.

je suis débutant avec le MVC et la PDO et j'ai un ptit problème que je ne parvient vraiment pas a resoudre.

voila le contenu du fichier controleur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
<?php
//On inclut le modèle
include dirname(__FILE__).'/../models/models.php';
 
//On récupère les valeurs test
$mavaleur = liste_test();
 
//On inclut la vue
include dirname(__FILE__).'/../views/views.php';
?>
voila le contenu du fichier modele
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
function liste_test(){
	$mavaleur = array();
 
	$resultats=$connexion->query("SELECT * from test");
	while($ligne = $resultats->fetch(PDO::FETCH_ASSOC)){
		$mavaleur[] = $ligne;
	}
	$resultats->closeCursor();
 
	return $mavaleur;
}
et ma vue
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
foreach($mavaleur as $n){
    echo $n[id].' test '.$n[content].'<br />';
}
le problème vient du modele et du controleur.
quand j'utilise la fonction qui est dans le modele j'ai deux erreurs :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Notice: Undefined variable: connexion
et
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Fatal error: Call to a member function query() on a non-object
mais quand je ne passe pas par un modele
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
<?php
//On inclut le modèle
include dirname(__FILE__).'/../models/models.php';
 
//On récupère les valeurs test
$mavaleur = array();
 
	$resultats=$connexion->query("SELECT * from test");
	while($ligne = $resultats->fetch(PDO::FETCH_ASSOC)){
		$mavaleur[] = $ligne;
	}
	$resultats->closeCursor();
 
//On inclut la vue
include dirname(__FILE__).'/../views/views.php';
?>
et bien tout fonctionne.

au debut j'ai pensé a un probleme avec mon fichier modele et j'ai mit directement la fonction liste_test dans le controleur pour voir. et tjs la meme erreur.
je ne comprend pas pourquoi la PDO ne passe pas en passant par une fonction.