Recuperer les valeurs des champs en POO
pamayo
-
P@t@ch0n Messages postés 603 Statut Membre -
P@t@ch0n Messages postés 603 Statut Membre -
Bonjour,
je n'arrive pas a récupérer les valeurs des champs en passant par une classe ABSTRACTION DES REQUÊTES SQL.
Classe trouvée sur www.phpcs.com
# * Classe d'abstraction de base de données MySQL.
# * @version 2.1
# * @php 4
# * @author Antoine Rousseau - http://mout.fr/
# */
#
# class BDD {
# var $host;
# var $user;
# var $pass;
# var $db;
# var $link;
# var $template;
# var $prefix;
#
# /**
# * Instancie un objet BDD, se connecte au SGBD spécifié,
# * et sélectionne la base spécifiée.
# *
# * @param String $base la base de données
# * @param String $host le serveur
# * @param String $user le login de connexion au SGBD
# * @param String $pass le mot de passe de connexion au SGBD
# * @param String $prefix préfixes des tables, par défaut aucun
# */
# function BDD($base, $host, $user, $pass, $prefix=''){
# $this->host = $host;
# $this->user = $user;
# $this->pass = $pass;
# $this->db = $base;
# $this->prefix = $prefix;
# $this->template = array(0=>'',1=>'');
# //connexion au SGBD :
# $this->link = mysql_connect($this->host, $this->user, $this->pass)
# or die($template[0].'Error connecting to "'.$this->host.'":<pre>'.mysql_error().'</pre>'.$template[1]);
# //sélection de la base de données ("use") :
# mysql_select_db($this->db, $this->link)
# or die($template[0].'Error selecting "'.$this->db.'" database:<pre>'.mysql_error().'</pre>'.$template[1]);
# }
#
# /**
# * Sélectionne des enregistrements.
# *
# * @param String $fields champs à retourner (SELECT, peut être '*')
# * @param String $tables table(s) à lire (FROM)
# * @param String $conditions critères de filtrage (WHERE)
# * @param String $order ordre de tri (par défaut par ordre croissant)
# * @param int $limit limite du nombre de résultats renvoyés, par défaut aucune limite
# * @return Array tableau contenant les enregistrements sélectionnés (1 enregistrement = 1 ligne)
# */
# function select($fields, $tables, $conditions='1', $order='', $limit=0){
# $requete = 'SELECT '.$fields.' FROM '.$this->list_prefix_tables($tables).' WHERE '.$conditions;
# if(!empty($order))
# $requete.= ' ORDER BY '.$order;
# if(!empty($limit) && $limit>0)
# $requete.= ' LIMIT '.$limit;
# $q = $this->query($requete);
# $t = array();
# while($r = mysql_fetch_array($q, MYSQL_ASSOC))
# $t[] = $r;
# return $t;
# }
#
# /**
# * Insert des données dans la base.
# *
# * @param String $into table où insérer les données (INTO)
# * @param Array $data tableau contenant les données (1 ligne = 1 champ)
# */
# function insert($into, $data){
# foreach($data as $k => $v){
# $keys[] = $k;
# $vals[] = $this->quote_smart($v);
# }
# $this->query('INSERT INTO '.$this->prefix.$into.' ('.implode(',',$keys).') VALUES ('.implode(',',$vals).')');
# return mysql_insert_id($this->link);
# }
#
# /**
# * Modifie des données dans la base.
# *
# * @param String $into table où modifier les données
# * @param Array $data tableau contenant les données (1 ligne = 1 champ)
# * @param String $conditions conditions permettant la sélection des enregistrements à modifier
# */
# function update($into, $data, $conditions='1'){
# foreach($data as $k => $v)
# $modifications[] = $k.'='.$this->quote_smart($v);
# $this->query('UPDATE '.$this->prefix.$into.' SET '.implode(',',$modifications).' WHERE '.$conditions);
# }
#
# /**
# * Supprime des données dans la base.
# *
# * @param String $from table où supprimer des données
# * @param String $conditions conditions permettant la sélection des enregistrements à supprimer
# */
# function delete($from, $conditions){
# $this->query('DELETE FROM '.$this->prefix.$from.' WHERE '.$conditions);
# }
#
# /**
# * Vide une table.
# *
# * @param String $table table où supprimer des données
# */
# function truncate($table){
# $this->query('TRUNCATE TABLE '.$this->prefix.$table);
# }
#
# /**
# * Effectue une requête.
# *
# * @param String $requete Requete SQL
# */
# function query($requete){
# $r = mysql_query($requete, $this->link)
# or die($this->template[0].'<b>Error in the query : </b><pre>'.$requete.'</pre>'
# .'<b>MySQL answered : </b><p>'.mysql_error().'</p>'.$this->template[1]);
# return $r;
# }
#
# /**
# * Incrémente ou décrémente une variable.
# *
# * @param String $table table subissant la modification
# * @param String $champ variable à incrémenter/décrémenter de $n
# * @param int $n delta à appliquer à la variable $champ
# * @param String $conditions conditions permettant la sélection des enregistrements dont il faut modifier cette variable
# */
# function delta($table, $champ, $n, $conditions){
# $delta = $n>0 ? "+$n" : "-$n";
# $this->query('UPDATE '.$this->prefix.$table.' SET '.$champ.'='.$champ.$delta.' WHERE '.$conditions);
# }
#
# /**
# * Compte les lignes d'une ou plusieurs tables, selon des conditions ou non.
# *
# * @param String $tables tables dans lesquelles on compte
# * @param String $conditions conditions de comptage
# */
# function count($tables, $conditions='1'){
# $r = $this->query('SELECT COUNT(*) FROM '.$this->list_prefix_tables($tables).' WHERE '.$conditions);
# return mysql_result($r,0,0);
# }
#
# /**
# * Préfixe les tables en paramètre
# *
# * @param Array $tables les tables à préfixer
# * @return Array les tables préfixées
# */
# function list_prefix_tables($tables){
# if(is_array($tables)){
# foreach($tables as $t)
# $tablesP[] = $this->prefix.$t;
# return implode(',',$tablesP);
# }
# else
# return $this->prefix.$tables;
# }
#
# /**
# * Protège la variable
# * @author PHP.NET
# *
# * @param String $value la variable à protéger
# * @return String la variable protégée
# */
# function quote_smart($value){
# if(get_magic_quotes_gpc())
# $value = stripslashes($value);
# if(!is_numeric($value))
# $value = "'".mysql_real_escape_string($value)."'";
# return $value;
# }
#
# /**
# * Modifie la template d'affichage des erreurs
# *
# * @param String $begin le code précédant l'erreur
# * @param String $end le code suivant l'erreur
# */
# function set_template($begin='', $end=''){
# $this->template[0] = $begin;
# $this->template[1] = $end;
# }
#
# }
voici mon pb :
$mysql = new BDD(test,localhost,toto,123456); //ici c'est OK
$mysql->select('*',table); //ici aussi
Mais après je ne vois pas comment faire pour récupérer les valeurs des champs du style $row['nom']
Merci beaucoup pour votre aide.
je n'arrive pas a récupérer les valeurs des champs en passant par une classe ABSTRACTION DES REQUÊTES SQL.
Classe trouvée sur www.phpcs.com
# * Classe d'abstraction de base de données MySQL.
# * @version 2.1
# * @php 4
# * @author Antoine Rousseau - http://mout.fr/
# */
#
# class BDD {
# var $host;
# var $user;
# var $pass;
# var $db;
# var $link;
# var $template;
# var $prefix;
#
# /**
# * Instancie un objet BDD, se connecte au SGBD spécifié,
# * et sélectionne la base spécifiée.
# *
# * @param String $base la base de données
# * @param String $host le serveur
# * @param String $user le login de connexion au SGBD
# * @param String $pass le mot de passe de connexion au SGBD
# * @param String $prefix préfixes des tables, par défaut aucun
# */
# function BDD($base, $host, $user, $pass, $prefix=''){
# $this->host = $host;
# $this->user = $user;
# $this->pass = $pass;
# $this->db = $base;
# $this->prefix = $prefix;
# $this->template = array(0=>'',1=>'');
# //connexion au SGBD :
# $this->link = mysql_connect($this->host, $this->user, $this->pass)
# or die($template[0].'Error connecting to "'.$this->host.'":<pre>'.mysql_error().'</pre>'.$template[1]);
# //sélection de la base de données ("use") :
# mysql_select_db($this->db, $this->link)
# or die($template[0].'Error selecting "'.$this->db.'" database:<pre>'.mysql_error().'</pre>'.$template[1]);
# }
#
# /**
# * Sélectionne des enregistrements.
# *
# * @param String $fields champs à retourner (SELECT, peut être '*')
# * @param String $tables table(s) à lire (FROM)
# * @param String $conditions critères de filtrage (WHERE)
# * @param String $order ordre de tri (par défaut par ordre croissant)
# * @param int $limit limite du nombre de résultats renvoyés, par défaut aucune limite
# * @return Array tableau contenant les enregistrements sélectionnés (1 enregistrement = 1 ligne)
# */
# function select($fields, $tables, $conditions='1', $order='', $limit=0){
# $requete = 'SELECT '.$fields.' FROM '.$this->list_prefix_tables($tables).' WHERE '.$conditions;
# if(!empty($order))
# $requete.= ' ORDER BY '.$order;
# if(!empty($limit) && $limit>0)
# $requete.= ' LIMIT '.$limit;
# $q = $this->query($requete);
# $t = array();
# while($r = mysql_fetch_array($q, MYSQL_ASSOC))
# $t[] = $r;
# return $t;
# }
#
# /**
# * Insert des données dans la base.
# *
# * @param String $into table où insérer les données (INTO)
# * @param Array $data tableau contenant les données (1 ligne = 1 champ)
# */
# function insert($into, $data){
# foreach($data as $k => $v){
# $keys[] = $k;
# $vals[] = $this->quote_smart($v);
# }
# $this->query('INSERT INTO '.$this->prefix.$into.' ('.implode(',',$keys).') VALUES ('.implode(',',$vals).')');
# return mysql_insert_id($this->link);
# }
#
# /**
# * Modifie des données dans la base.
# *
# * @param String $into table où modifier les données
# * @param Array $data tableau contenant les données (1 ligne = 1 champ)
# * @param String $conditions conditions permettant la sélection des enregistrements à modifier
# */
# function update($into, $data, $conditions='1'){
# foreach($data as $k => $v)
# $modifications[] = $k.'='.$this->quote_smart($v);
# $this->query('UPDATE '.$this->prefix.$into.' SET '.implode(',',$modifications).' WHERE '.$conditions);
# }
#
# /**
# * Supprime des données dans la base.
# *
# * @param String $from table où supprimer des données
# * @param String $conditions conditions permettant la sélection des enregistrements à supprimer
# */
# function delete($from, $conditions){
# $this->query('DELETE FROM '.$this->prefix.$from.' WHERE '.$conditions);
# }
#
# /**
# * Vide une table.
# *
# * @param String $table table où supprimer des données
# */
# function truncate($table){
# $this->query('TRUNCATE TABLE '.$this->prefix.$table);
# }
#
# /**
# * Effectue une requête.
# *
# * @param String $requete Requete SQL
# */
# function query($requete){
# $r = mysql_query($requete, $this->link)
# or die($this->template[0].'<b>Error in the query : </b><pre>'.$requete.'</pre>'
# .'<b>MySQL answered : </b><p>'.mysql_error().'</p>'.$this->template[1]);
# return $r;
# }
#
# /**
# * Incrémente ou décrémente une variable.
# *
# * @param String $table table subissant la modification
# * @param String $champ variable à incrémenter/décrémenter de $n
# * @param int $n delta à appliquer à la variable $champ
# * @param String $conditions conditions permettant la sélection des enregistrements dont il faut modifier cette variable
# */
# function delta($table, $champ, $n, $conditions){
# $delta = $n>0 ? "+$n" : "-$n";
# $this->query('UPDATE '.$this->prefix.$table.' SET '.$champ.'='.$champ.$delta.' WHERE '.$conditions);
# }
#
# /**
# * Compte les lignes d'une ou plusieurs tables, selon des conditions ou non.
# *
# * @param String $tables tables dans lesquelles on compte
# * @param String $conditions conditions de comptage
# */
# function count($tables, $conditions='1'){
# $r = $this->query('SELECT COUNT(*) FROM '.$this->list_prefix_tables($tables).' WHERE '.$conditions);
# return mysql_result($r,0,0);
# }
#
# /**
# * Préfixe les tables en paramètre
# *
# * @param Array $tables les tables à préfixer
# * @return Array les tables préfixées
# */
# function list_prefix_tables($tables){
# if(is_array($tables)){
# foreach($tables as $t)
# $tablesP[] = $this->prefix.$t;
# return implode(',',$tablesP);
# }
# else
# return $this->prefix.$tables;
# }
#
# /**
# * Protège la variable
# * @author PHP.NET
# *
# * @param String $value la variable à protéger
# * @return String la variable protégée
# */
# function quote_smart($value){
# if(get_magic_quotes_gpc())
# $value = stripslashes($value);
# if(!is_numeric($value))
# $value = "'".mysql_real_escape_string($value)."'";
# return $value;
# }
#
# /**
# * Modifie la template d'affichage des erreurs
# *
# * @param String $begin le code précédant l'erreur
# * @param String $end le code suivant l'erreur
# */
# function set_template($begin='', $end=''){
# $this->template[0] = $begin;
# $this->template[1] = $end;
# }
#
# }
voici mon pb :
$mysql = new BDD(test,localhost,toto,123456); //ici c'est OK
$mysql->select('*',table); //ici aussi
Mais après je ne vois pas comment faire pour récupérer les valeurs des champs du style $row['nom']
Merci beaucoup pour votre aide.
A voir également:
- Recuperer les valeurs des champs en POO
- Comment récupérer les messages supprimés sur whatsapp - Guide
- Récupérer mon compte facebook désactivé - Guide
- Comment recuperer une video sur youtube - Guide
- Comment récupérer un compte facebook piraté - Guide
- Nvidia impossible de récupérer les valeurs actuelles - Forum Jeux PC
3 réponses
Bonjour,
Je reprends une partie de ton code:
# * Sélectionne des enregistrements.
# *
# * @param String $fields champs à retourner (SELECT, peut être '*')
# * @param String $tables table(s) à lire (FROM)
# * @param String $conditions critères de filtrage (WHERE)
# * @param String $order ordre de tri (par défaut par ordre croissant)
# * @param int $limit limite du nombre de résultats renvoyés, par défaut aucune limite
# * @return Array tableau contenant les enregistrements sélectionnés (1 enregistrement = 1 ligne)
# */
# function select($fields, $tables, $conditions='1', $order='', $limit=0){
# $requete = 'SELECT '.$fields.' FROM '.$this->list_prefix_tables($tables).' WHERE '.$conditions;
# if(!empty($order))
# $requete.= ' ORDER BY '.$order;
# if(!empty($limit) && $limit>0)
# $requete.= ' LIMIT '.$limit;
# $q = $this->query($requete);
# $t = array();
# while($r = mysql_fetch_array($q, MYSQL_ASSOC))
# $t[] = $r;
# return $t;
# }
Les lignes en gras devraient t'intéresser!
Je reprends une partie de ton code:
# * Sélectionne des enregistrements.
# *
# * @param String $fields champs à retourner (SELECT, peut être '*')
# * @param String $tables table(s) à lire (FROM)
# * @param String $conditions critères de filtrage (WHERE)
# * @param String $order ordre de tri (par défaut par ordre croissant)
# * @param int $limit limite du nombre de résultats renvoyés, par défaut aucune limite
# * @return Array tableau contenant les enregistrements sélectionnés (1 enregistrement = 1 ligne)
# */
# function select($fields, $tables, $conditions='1', $order='', $limit=0){
# $requete = 'SELECT '.$fields.' FROM '.$this->list_prefix_tables($tables).' WHERE '.$conditions;
# if(!empty($order))
# $requete.= ' ORDER BY '.$order;
# if(!empty($limit) && $limit>0)
# $requete.= ' LIMIT '.$limit;
# $q = $this->query($requete);
# $t = array();
# while($r = mysql_fetch_array($q, MYSQL_ASSOC))
# $t[] = $r;
# return $t;
# }
Les lignes en gras devraient t'intéresser!
Bonjour,
et merci gregouz62 pour ton aide mais je n'arrive pas à comprendre comment faire j'ai essayer de faire
comme ça mais ça ne marche pas :
$mysql = new BDD(test,localhost,toto,123456);
$mysql->select('*',table);
$mysql->$t['nom'];
et merci gregouz62 pour ton aide mais je n'arrive pas à comprendre comment faire j'ai essayer de faire
comme ça mais ça ne marche pas :
$mysql = new BDD(test,localhost,toto,123456);
$mysql->select('*',table);
$mysql->$t['nom'];
La méthode select retourne un tableau que tu dois parcourir.
En ce qui concerne le code la classe, je pense que tu devrais en trouver une autre, celle-là est affreuse, généralement on utilise un singleton pour la connexion à la base de données.
$resultats = $mysql->select('*',table);
foreach( $resultats as $ligne )
{
echo $ligne['nom'];
}
En ce qui concerne le code la classe, je pense que tu devrais en trouver une autre, celle-là est affreuse, généralement on utilise un singleton pour la connexion à la base de données.