IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Undefined variable + Call to a member function query() on a non-object + MVC [PDO]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 18
    Points : 19
    Points
    19
    Par défaut Undefined variable + Call to a member function query() on a non-object + MVC
    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.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    $connexion n'existe pas dans ta fonction. Il faut soit le passer en paramètre, soit le définir comme global.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 18
    Points : 19
    Points
    19
    Par défaut
    ok merci.
    Mais je comprend pas pourquoi elle n'existe pas. elle existe bien quand je n'utilise pas de fonction ?
    je pause la question pour ne plus faire l'erreur

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Les variables dans une fonction ne sont pas les memes que les variables en dehors de la fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $a = "toto";
    function bidon() {
    echo $a 
    }
    bidon(); // n'affiche rien
    Passer la variable en argument :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $a = "toto";
    function bidon($a) {
    echo $a 
    }
    bidon($a); // toto
    Indiquer dans la fonction qu'on utilise la variable exterieure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $a = "toto";
    function bidon() {
    global $a
    echo $a 
    }
    bidon(); // toto
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 18
    Points : 19
    Points
    19
    Par défaut
    ok merci j'ai tout compris (j'ai meme ete *** c'est un peut logique)

    tout fonctionne correctement

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Fatal error: Call to a member function query() on a non-object
    Par tib44 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 13/06/2015, 23h33
  2. [PDO] Fatal error: Call to a member function query() on a non-object
    Par JokerAs dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 20/09/2014, 01h15
  3. [MySQL] Erreur "Call to a member function query() on a non-object"
    Par ForFunnyPlay dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 27/07/2014, 15h15
  4. Réponses: 16
    Dernier message: 23/05/2013, 10h35
  5. [MySQL] Fatal error: Call to a member function query() on a non-object
    Par -Fly- dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 12/11/2010, 15h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo