Bonjour,

je me mets au MVC POO et dans mon modèle général, je vais créer toutes les fonctions dont l'utilité est redondante à travers mon application.

Elle est d'être finie évidement mais je prends le problème au cas par cas.

Avec mon code ci-dessous, je désire créer un condition pour binder certaines données. Est possible avec le code créé ? Ou je dois crée une autre fonction.

J'estime que cela ne sert à rien de binder toutes les données quand elles ne viennent pas d'un formulaire. Je me trompe ou je m'y prends comme un pied?


Code php : 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
 
class model{
    private $fields = '*';
    private $table = '';
    private $where = '';
    private $and = '';
    private $limit = '';
    private $order = '';
    private $order_direction = 'DESC';
    private $stmt;
    private $d = array();
 
    public function getExecute(){
        return $this->stmt->execute();
    }
 
    public function find($data = array()){
        if(isset($data['fields'])){
            $this->fields = $data['fields'];
        }
        $this->table = $data['table'];
        if(isset($data['where'])){
            $this->where = ' WHERE '.$data['where'];
        }
        if(isset($data['and'])){
            $this->and = ' AND '.$data['and'];
        }
        if(isset($data['limit'])){
            $this->limit = ' LIMIT '.$data['limit'];
        }
        if(isset($data['order'])){
            $this->order = ' ORDER BY '.$data['order'].' '.$order_direction;
        }
        $this->stmt = Db::getInstance()->prepare('SELECT '.$this->fields.' 
                                                  FROM '.$this->table.$this->where.
                                                  $this->and.$this->order.$this->limit.'');
        $this->getExecute();
        return $this->stmt->fetchAll(PDO::FETCH_OBJ);
    }
}

Exemple de requête

Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
$model = new model();
$sql = $model->find(array(
    'table'=>'users',
    'where'=>'u_login="admin"' // donnée brute mais sera bindé
));
foreach($sql as $row):
    echo $row->u_login.' - '.$row->u_id_level.'<br>';
endforeach;

Merci d'avance de vos réponses.

David