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

Langage PHP Discussion :

POO : requête SQL afficher le résultat [PHP 5.3]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    429
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2013
    Messages : 429
    Par défaut POO : requête SQL afficher le résultat
    Bonjour bonjour
    Alors voila j'ai un fichier appelé technicien.class.php qui contient la class technicien qui se connecte a la BDD par l'inclusion du fichier connexion BDD et qui va chercher les noms des tech dans la tables techniciens, les enregistre sous forme d'objet et me les affiche voici le code :
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    <?php 
    class technicien {
     
     protected $connexion ;
     protected $technicien ; 
     protected $resultats ;
     
    	public function __construct(){		
    	require_once "connexionBDD.class.php";
    	}
     
    	public function getList()
    	{
    		$connexion = new connexionBDD() ;
    		$resultats=$this->connexion->query("SELECT Nom FROM technicien"); // on va chercher tous les tech de la table 
    		$resultats->setFetchMode(PDO::FETCH_OBJ); // on dit qu'on veut que le résultat soit récupérable sous forme d'objet
    		while( $ligne = $resultats->fetch() ) // on récupère la liste des tech
    		{
    			echo $ligne->technicien.'<br />'; // on affiche les tech
    		}
    		$resultats->closeCursor(); // on ferme le curseur des résultats
    	}
     
    }
     
    ?>
    Le message d'erreur suivant me pose problème :
    Fatal error: Call to a member function query() on a non-object in C:\wamp\www\lcesa2\technicien.class.php on line 15
    Voici la ligne 15 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $resultats=$this->connexion->query("SELECT Nom FROM technicien"); // on va chercher tous les tech de la table
    Est ce que quelqu'un aurait rencontré le même problème ?
    Merci de votre atttention et de votre aide les amis

  2. #2
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 931
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 931
    Par défaut
    Tu crées la classe connexionBDD dans la variable $connexion, pas dans la propriété de ta classe qui va bien. Donc forcément, ça bugge.

  3. #3
    Membre éclairé
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    429
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2013
    Messages : 429
    Par défaut
    Coucou (j'adore ton image )

    Pas compris ? Je dois le creer a partir de quoi d'autre mon objet pour me connecter a par dans la classe ou il y la connexion ?

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Tu confonds $connexion et $connexion !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    class Gwen{
    	protected $connexion = 'foo';
     
    	public function getConn(){
    		$connexion = 'bar';
    		echo $connexion;
    		echo '<br />';
    		echo $this->connexion;
    	}
    }
    $gwen = new Gwen();
    $gwen->getConn();
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  5. #5
    Membre éclairé
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    429
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2013
    Messages : 429
    Par défaut
    Coucou Bovino !! Merci de ta reponse mais ej t'avoue que pour ma petite tete $connexion et $connexion sont identiques lol
    Je ne comprend pas ton exemple ^^

  6. #6
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Exécute le code, tu devrais comprendre...

    EDIT
    Ah zut... j'avais pas fait gaffe au double sens... c'était pas voulu, désolé...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  7. #7
    Membre éclairé
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    429
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2013
    Messages : 429
    Par défaut
    Le code affiche les mots:
    bar
    foo

    $connexion est initialisé comme étant égal a foo , dans ta fonction getConn() tu lui affectes la valeur bar.

    Ensuite tu fais donc tu appel $connexion mais pas celui de la fonction celui que tu as initialisé au depart, et ensuite tu instancies l'objet $gwen a la classe Gwen et tu appel la fonction getConn() ce qui permet l'affichage de bar c'est tout juste prof ou j'ai dis une betise ?

  8. #8
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Non, ce n'est pas ça du tout.

    Je déclare d'abord une propriété de la classe en lui affectant la valeur foo.
    Ensuite, dans la méthode getConn(), je déclare une variable, donc spécifique à cette fonction et qui n'a donc rien à voir avec la propriété de la classe et ce malgré le nom identique.
    Ensuite, je vérifie qu'il s'agit bien de deux valeurs différentes en affichant l'une, puis l'autre.
    Donc transpose ça à ton code, et tu comprendras la réponse de Bisûnûrs.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

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

Discussions similaires

  1. Requête SQL : afficher résultat même si champ vide
    Par nlbmoi dans le forum Langage SQL
    Réponses: 6
    Dernier message: 05/09/2014, 15h05
  2. [SQL] Afficher le résultat d'une requête
    Par herve911 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 16/01/2008, 08h58
  3. [SQL] Afficher les résultats d'une requête sur plusieurs pages
    Par mealtone dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 07/09/2006, 13h20
  4. Réponses: 5
    Dernier message: 14/06/2006, 15h19
  5. Réponses: 3
    Dernier message: 11/01/2006, 18h35

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