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 :

Programmation Objet PHP-Mysql - Comment formaliser la gestion des listes


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 17
    Points : 18
    Points
    18
    Par défaut Programmation Objet PHP-Mysql - Comment formaliser la gestion des listes
    Bonjour,

    J'ai déja posé cette question dans le forum 'PHP-MySQL', mais aucune réponse, cette question n'est pas spécifique à MySQL, alors je la repose ici :

    Je passe progressivement le coage d'un site en PHP Mysql, vers un formalisme objet avec un fichier de classe par objet.

    Par contre je me demande comment coder la gestion des tableaux d'objets.

    En clair, j'ai par exemple besoin de récupérer une liste d'objet répondant à certains critères.

    Comment coder cela proprement à l'aide de classes ?

    J'espère avoir été asez clair :d

    Pour être un peu plus clair : un petit exemple

    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
     
    class Utilisateur
    {
    Private prenom;
    Private nom;
    Private id;
    Private age;
     
    Public charge()
    {
    $sql = 'SELECT * from base_utilisateur where id = '.$this->id ;
    ...
    }
     
    Public set_id($id)
    {
    $this->id = $id;
    }
    ...
    }
    Par exemple, si je veux récupérer les infos d'un utilisateur, je ferais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $util = new utilsateur;
    $util->set_id(1);
    if ($util->charge()) ...
    Maintenant comment formaliser la récupération de plusieurs objets d'une même classe, par exemple 'tous les utilisateurs ayant un age donné' ?

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Février 2009
    Messages : 34
    Points : 40
    Points
    40
    Par défaut
    Moi à ta place j'aurais créé une classe différente pour les traitements BdD. Comme ca dans ta classe de récupération des informations dans une base de données, tu construit tes requêtes.

    exemple de méthodes dans la classe BdD :
    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
     
    //variable : 
     
    private $_select;
    private $_tablename;
    private $_champsSelection = array(); //'id', 'nom' ...
    private $_where = array() ; //
     
     
     
     
    //Fonctions
     
    public function __construct($tablename)
    {
         $this->setTableName($tablename);
    }
     
    public function setTableName($table) { $this->_tablename = $table }; 
     
    where($champs, $condition) { 
        $this->_where[] =" WHERE $champs = $condition "; 
    }
     
    public function fetchall() {
        $this->_select = "SELECT (ici tu ajoutes tes $this->_champsSelection)  From $this->_tablename (ici tu affiches les wheres) .. . . . 
     
    //query.... etc
     
    ; // retourne le résultat sous forme de tableau
    }
     
    public function fetchRow(){};
     
    public function join()...
    ..
     
    }
    Voila un résultat très basic, sans test et il manque beaucoup de chose mais bon ensuite tu complètes ...
    Après, quand tu récupères tes résultats tu génères des objets utilisateurs..

    Un bon exemple est de regarder les classes de Zend (Zend_Db_Table et les classes autour par exemple) et de se calquer dessus .. c'est très bien comme démarche.

Discussions similaires

  1. [MySQL] PHP/MySQL comment programmer vous ?
    Par alex0 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 23/12/2010, 14h03
  2. Réponses: 13
    Dernier message: 22/06/2010, 16h08
  3. [MySQL] Programmation Objet PHP-Mysql - Comment formaliser la gestion des listes
    Par bacchus41 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 04/04/2009, 21h33
  4. [PHP/MySQL] Comment relier deux tables ?
    Par SkiSo dans le forum Requêtes
    Réponses: 4
    Dernier message: 08/03/2007, 22h10
  5. [PHP/MySQL]Comment proteger ces données
    Par steeves5 dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 23/02/2006, 13h04

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