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 avec classe PHP


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Novembre 2003
    Messages
    533
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Novembre 2003
    Messages : 533
    Par défaut [POO] Requête avec classe PHP
    Bonjour,

    Je commence à me mettre à la POO, et j'aurais deux question:

    Dans l'exemple ci-dessou, est-ce que c'est une bonne manière de profiter de la POO, ou est-ce que c'est inutile?

    Deuxièmement, toujours pour le même code, j'ai une erreur dans mon mysql_fetch_array, il me dit que la requete SQL n'est pas bonne, mais je l'ai testée das mysql, et tout est ok, est-ce que je fais qqch de faux? Si oui, comment?

    Merci d'avance pour votre aide

    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
    27
    28
    29
    30
    31
    32
    33
    34
     
    class base_de_donnee
    	{
    	var $hote = "localhost";
    	var $utilisateur = "root";
    	var $mot_de_passe = "";
    	var $base = "ma_base";
     
    	//fonction qui s'exécute à la construction de l'objet
        function __construct()
    		{ 
    		echo $this->utilisateur;
            mysql_connect($this->hote, $this->utilisateur, $this->mot_de_passe) or die(mysql_error());
    		mysql_select_db($this->base) or die(mysql_error());
    		}
     
    	function execution_requete($requete)
    		{
    		mysql_query($requete);
    		}
     
    	//fonction qui s'exécute à la destruction de l'objet
        function __destruct()
    		{ 
            mysql_close();
    		echo 'test';
    		} 
    	}
    $connection = new base_de_donnee;
    $renvoi = $connection->execution_requete("SELECT * FROM tbl_menu");
    while($test = mysql_fetch_array($renvoi))
    	{
    	echo $test['id_menu'];
    	}

  2. #2
    Membre Expert
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Par défaut
    Salut, il faut que tu modifies ta fonction execution_requete pour qu'elle retourne le résultat de mysql_query :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function execution_requete($requete) {
       return mysql_query($requete);
    }
    Bon développement

  3. #3
    Rédacteur

    Avatar de Yoteco
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    1 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 099
    Par défaut
    Dans l'exemple ci-dessou, est-ce que c'est une bonne manière de profiter de la POO, ou est-ce que c'est inutile?
    Alors honnêtement c'est pas très utile ce que tu fais là. Car par exemple ta fonction requête() ne fais rien d'autre que la même chose que la fonction mysql_query(). Ensuite c'est beacoup mieux de passer les valeur en paramètres au constructeur que de faire des variable que tu assignes l'une après l'autres, c'est mieux pour la réutilisabilité. Si tu as un serveur PHP5 essaye de t'habituer à utiliser les mots clé public, private et protected c'est plus propre et mieux protégé .

    J'ai déjà essayer plusieurs fois de faire des classe pour gérer les requêtes MySQL mais je me suis rendus compte que sa ne sert pas à grand chose et finalement je me suis tourné vers PDO qui gère ça parfaitement

    Voici un exemple de ta classe un peu améliorer:
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    class base_de_donnee
        {
        private $hote;
        private $utilisateur;
        private $mot_de_passe;
        private $base;
     
        //fonction qui s'exécute à la construction de l'objet
        public function __construct($argHost, $argUser, $argPassword, $argDb)
            { 
                $this->hote = $argHost;
                $this->utilisateur = $argUser;
                $this->mot_de_passe = $argPassword;
                $this->base = $argDb;
     
                $this->connect()
            }
             private function connect()
             {
                mysql_connect($this->hote, $this->utilisateur, $this->mot_de_passe) or die(mysql_error());
            mysql_select_db($this->base) or die(mysql_error());
             }
     
        public function execution_requete($requete)
            {
            mysql_query($requete);
            }
     
        //fonction qui s'exécute à la destruction de l'objet
        public function __destruct()
            { 
            mysql_close();
            echo 'test';
            } 
        }
    $connection = new base_de_donnee('localhost', 'root', '', 'ma_base');
    $renvoi = $connection->execution_requete("SELECT * FROM tbl_menu");
    while($test = mysql_fetch_array($renvoi))
        {
        echo $test['id_menu'];
        }
    Blog - Mon espace developpez -
    Oracle Certified Professional, Java SE 6 Programmer
    eZ Publish Certified developer

  4. #4
    Membre éclairé
    Inscrit en
    Novembre 2003
    Messages
    533
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Novembre 2003
    Messages : 533
    Par défaut
    Merci beaucoup pour votre aide aux deux, ca marche maintenant, maintenant il reste plus qu'a ce que je comprenne quand est-ce que je dois utilisé la POO, et après, c'est super.

    Bonne soirée.

    Fab

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

Discussions similaires

  1. [POO] Formulaire avec du php et du javascript HTTPXmlR
    Par drwriggles dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 22/08/2008, 14h19
  2. [POO] Ajax et Classes PHP
    Par Baillezon dans le forum Langage
    Réponses: 2
    Dernier message: 06/05/2008, 12h15
  3. [POO] ma 1ère classe PHP :=)
    Par amazircool dans le forum Langage
    Réponses: 14
    Dernier message: 21/05/2007, 14h50
  4. [POO] Organisation des classes PHP
    Par AsQuel dans le forum Langage
    Réponses: 6
    Dernier message: 16/02/2007, 09h09
  5. Réponses: 1
    Dernier message: 29/10/2006, 05h04

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