Annonce

#1 Re : Aide technique » The Chicken and The Horse » 2006-05-13 13:20:22

1. C'est quoi ça?
2. Je n'ai pas vu l'ombre d'un problème dans ton message alors pourquoi tu l'as mis ici?
3. Tu essais de faire l'invité boulet?
4. Pourquoi tu mets un pseudo femme-de-france et que tu écris en anglais?

#2 Re : Le coin des bavards » Une class template » 2006-05-12 22:02:36

Voici ma class de template sous license GNU GPL avec 309 l. qui contient encore quelques bugs (vous pourrez voir l.:62 Recodage total (en beta):

<?php
/****************************************************************************
|    
|    #    Nom: sql_pusher.class.php
|    #    Auteur : Groupe Active Board
|    #    Commencé : Le 28 Mars 2006
|    #    Description : Cette classe permet de gérer MySQL simplement
|    #    Version: 4.0.0
|
****************************************************************************/

/***************************************************************************
*
*  Ce programme est un programme libre; vous pouvez le reditribuer et/ou le modifier
*  sous les termes de la GNU (License au grand public) publié par
*  la Free Software Foudation (FSF); vers la version 2 de la license, ou (selon le choix)
*  une version supérieur.
*
*
****************************************************************************/

/***************************************************************************
 *
 *  This program is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *    (at your option) any later version.
 *
 *   This program is distributed in the hope that it will be useful,
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *   You should have received a copy of the GNU General Public License
 *   along with this program; if not, write to the Free Software
 *   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 *
 *
 ***************************************************************************/
/**************************************************************************
##################################################
#
#---------------------[ HISTORIQUE ]---------------------------------------------------------------------------------------
#
----------------------------------------------------------------------------

{ VERSION 1 } ------------------- { PEU COMPLETE} 
#_-~~~ 28/03/2006  ~~~-_// Version 1.0.0: 1ère version (bug)
#_-~~~ 01/04/2006  ~~~-_// Version 1.1.0: Plusieurs modification (bug)
{ VERSION 2 } ------------------- { GROS RECODAGE BUG PRESENT} 
#_-~~~ 05/04/2006  ~~~-_// Version 2.0.0: Recodage complet (bug)
#_-~~~ 08/04/2006  ~~~-_// Version 2.0.1: Quelques debogage (bug)
#_-~~~ 09/04/2006  ~~~-_// Version 2.0.2: Correction de tout les bugs trouvés (fonctionnel)
#_-~~~ 09/04/2006  ~~~-_// Version 2.1.0: Modification d'une fonction (fonctionnel)
#_-~~~ 11/04/2006 ~~~-_// Version 2.1.1: Ajout des commentaires de modification + modification de certaines fonction + modification de l'indentation (fonctionnel)
#_-~~~ 12/04/2006 ~~~-_// Version 2.1.2: Ajout d'une erreur. (fonctionnel)
#_-~~~ 15/04/2006 ~~~-_// Version 2.1.3: Quelques modifications. (fonctionnel)
#_-~~~ 21/04/2006 ~~~-_// Version 2.2.0: Ajout du multi tpl + petit nétoyage~(bug)
{ VERSION 3 } ------------------- { PETIT RECODAGE} 
#_-~~~ 29/04/2006 ~~~-_// Version 3.0.0: Petit recodage (bug)
{ VERSION 4 } ------------------- { ENORME RECODAGE} 
#_-~~~ 30/04/2006 ~~~-_// Version 4.0.0: Recodage total (en beta)
------------------------------------------------------------------------------
##################################################
//--------------------------------[ DEBUT CORRECTION ]----------------------------------------------------
// V 2.1.1 : Ligne 205 (cf: ligne 202) [ ERRONE )
// V 4.0.0 : Tout
//--------------------------------[ FIN CORRECTION ]--------------------------------------------------------
***************************************************************************/
/*
** Classe Template,  codée par GoldenEye (par rapport à la class OpB), 
** vous permettra de passer facilement d'un design
** à un autre. Ce moteur de template à été
** codée simplement pour que la plupart 
** puisse la comprendre.
*/

class Template
{
    //--------------------------
    // Déclaration variable
    // template.
    //--------------------------
    var $path_theme        =    'themes';
    var $theme            =    'dAcB';
    
    var $file            =    array();
    var $vars            =     array();
    var $block            =     array();
    var $block_vars        =     array();
    
    var $glob_content    =     array();
    
    //--------------------------
    // Déclaration variable
    // erreur.
    //--------------------------
    
    var $error700        =    'Error général: Aucun array déclaré à la fonction ';
    var $error700_1        =    'Error général: Aucun root déclaré';
    var $error700_2        =    'Error général: Aucun fichier template ouvert';
    var $error701         =     'put_root(): Répertoire introuvable.';
    var $error701_1     =     'put_root(): Impossible d\'ouvrir le répertoire.';
    var $error702        =    'put_filename(): Fichier introuvable.';
    var $error702_1        =    'put_filename): Impossible d\'ouvrir le fichier.';
    var $error703        =    'put_var(): Un des deux paramètre est vide.';
    var $error703_1        =    'put_var(): Impossible de mettre une valeur.';
    var $error704        =    'put_vars(): Un des deux paramètre est vide.';
    var $error704_1        =    'put_vars(): Impossible de mettre des valeurs.';
    var $error705        =    'put_block_vars(): Un des deux paramètre est vide.';
    var $error705_1        =    'put_block_vars(): Impossible de mettre des blocks.';    
    var $error706        =    'modify_theme(): Un des deux paramètre est vide.';
    var $error706_1        =    'modify_theme(): Impossible de changer de thème.';
    
    
    
    function put_root()
    {
        $path_theme = $this->path_theme;
        $theme = $this->theme;
        if(!file_exists($path_theme.'/'.$theme.'/'))
        {
            $root = $path_theme.'/'.$theme.'/';
            die($this->error701);
            return FALSE;
        }
        else
        {
            $root = $path_theme.'/'.$theme.'/';
            $this->root = $path_theme.'/'.$theme.'/';
            return TRUE;
        }
        die($this->error701_1);
        return FALSE;
    }
    
    
    
    function put_filename($file_array)
    {
        if(!empty($file_array))
        {
            if($this->root !== FALSE)
            {
                $this->put_root();
                foreach($file_array as $handle => $filename)
                {
                    if(!file_exists($this->root.$filename))
                    {
                        die($this->error702.' : '.$this->root.$filename);
                        return FALSE;
                    }
                    else
                    {
                        $this->handle = $handle;
                        $this->filename[$this->handle] = $filename;
                        $this->glob_content[$handle] = $this->filename[$this->handle];
                        $tpl = @file($this->root.$filename);
                        $this->glob_content[$handle] = @implode("\n", $tpl);
                        return TRUE;
                    }
                }
            }
            else
            {
                die($this->error700_1);
                return FALSE;
            }
        }
        else
        {
            die($this->error702);
        }
    }
    
    
    
    function put_var($handle, $key, $value)
    {
        if($this->filename !== FALSE)
        {
            if(!empty($handle) AND !empty($value))
            {
                $this->vars[$key] = $value;
                $this->glob_content[$handle] = str_replace('{'.$key.'}', $value, $this->glob_content[$handle]);
                return TRUE;
            }
            else
            {
                die($this->error703);
                return FALSE;
            }
        }
        else
        {
            die($this->error700_2);
        }
        die($this->error703_1);
    }
    
    
    
    function put_vars($handle, $array_vars)
    {
        if($this->filename !== FALSE)
        {
            if(!is_array($array_vars))
            {
                die($this->error700.'put_vars');
                return FALSE;
            }
            else
            {
                if(!empty($array_vars))
                {
                    foreach($array_vars as $key => $value)
                    {
                        $this->vars[$handle] = $value;
                        $this->glob_content[$handle] = $this->vars[$handle];
                        $this->glob_content[$handle] = str_replace('{'.$key.'}', $value, $this->glob_content[$handle]);
                        return TRUE;
                    }
                }
                else
                {
                    die($this->error704);
                    return FALSE;
                }
            }
        }
        else
        {
            die($this->error700_2);
            return FALSE;
        }
        die($this->error704_1);
        return FALSE;
    }
    
    
    
    function put_block_vars($block_name, $values)
    {
        if($this->filename !== FALSE)
        {
            $this->block_vars[$block_name][] = $values;
            return TRUE;
        }
        else
        {
            die($this->error700_2);
            return FALSE;
        }
        die($this->error705_1);
        return FALSE;
    }
    
    
    
    function get_block_vars($block_name)
    {
        $this->block_name[$values] = $block_name;
        $this->block_vars[$this->block_name][] = $this->block_vars[$block_name];
        if(array_key_exists($this->block_name, $this->block))
        {
            return $this->block[$this->block_name];
        }
        else
        {
            die($error700.'get_block_vars');
            return FALSE;
        }
    }
    
    
    
    function modify_theme($path_theme, $theme)
    {
        if(!empty($path_theme) AND !empty($theme))
        {
            $this->theme = $theme;
            $this->path_theme = $path_theme;
            return TRUE;
        }
        else
        {
            die($error706);
            return FALSE;
        }
        die($error706_1);
        return FALSE;
    }
    
    
    
    function reset_template($handle)
    {
        unset($this->glob_content[$handle]);
    }
    
    
    
    function printer($handle)
    {
        echo $this->glob_content[$handle];
        $this->reset_template($handle);
    }
}
?>

#3 Re : Le coin des bavards » Une class SQL » 2006-05-12 21:54:29

Enorme mise à jour, ma class fonctionne. Avec je suis en train de créer MySQL-Soft-Admin qui est un PMA mais en plus simple.

Je vous rapelle que la class est sous license GNU GPL (merci à Bobe pour l'explication du comment faire) et elle fait 434 lignes (avant 395 avec la moitié en commentaire la j'ai enlevé les commentaires)

La voici:

<?php
/****************************************************************************
|    
|    #    Nom: sql_pusher.class.php
|    #    Auteur : Groupe Active Board
|    #    Commencé : Le 19 Mars 2006
|    #    Description : Cette classe permet de gérer MySQL simplement
|    #    Version: 3.0.0
|
****************************************************************************/

/***************************************************************************
*
*  Ce programme est un programme libre; vous pouvez le reditribuer et/ou le modifier
*  sous les termes de la GNU (License au grand public) publié par
*  la Free Software Foudation (FSF); 
*
*
****************************************************************************/

/***************************************************************************
 *
 *   This program is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *    (at your option) any later version.
 *
 *   This program is distributed in the hope that it will be useful,
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *   You should have received a copy of the GNU General Public License
 *   along with this program; if not, write to the Free Software
 *   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 *
 *
 ***************************************************************************/
//Déclaration de la class SQL
class sql
{
    #
    #-----------[ DECLARATION VARIABLES ]--------------#
    #
    var $sql            =    '';
    var $nbr_requete     =    0;
    
    var $connect;
    #
    #-----------[ DECLARATION FONCTIONS ]------------#
    #
    
    
    
    
    function sql(&$sql)
    {
        $this->sql =& $sql;
    }
    
    
    
    function connect($host,$username,$password)
    {
        $this->connect = @mysql_connect($host,$username,$password);
        if($this->connect === FALSE)
        {
            die('Impossible de se connecter à MySQL.');
        }
        return TRUE;    
    }
    
    
    
    function connectdb($host,$username,$password,$database)
    {
        $this->connect = @mysql_connect($host,$username,$password);
        if($this->connect === FALSE)
        {
            die('Impossible de se connecter à MySQL.');
        }
        else
        {
            if($this->connect !== FALSE)
            {
                $this->db = @mysql_select_db($database, $this->connect);
                if($this->db === FALSE)
                {
                    die('Impossible de selectionner la base de donnée');
                }
            }
            else
            {
                die('Vous n\'êtes pas connecté à MySQL.');
            }
            return TRUE;    
        }
        return TRUE;    
    }
    
    
    
    function db($database)
    {
        if($this->connect !== FALSE)
        {
            $this->db = @mysql_select_db($database, $this->connect);
            if($this->db === FALSE)
            {
                die('Impossible de selectionner la base de donnée');
            }
        }
        else
        {
            die('Vous n\'êtes pas connecté à MySQL.');
        }
        return TRUE;    
    }    
    
    
    
    function listdb()
    {
        if($this->connect !== FALSE)
        {
            $this->list_db = mysql_list_dbs();
            $this->nbr_requete++;
            return $this->list_db;
        }
    die('Impossible de lister les bases de données.');
    }
    
    
    
    function create_database($db_name)
    {
        $this->db_name = $db_name;
        if(!empty($this->db_name) AND $this->connect !== FALSE)
        {
            $this->create = mysql_create_db($this->db_name);
            $this->nbr_requete++;
            return $this->create;
        }
        die('Impossible de créer une nouvelle base de donnée.');
    }
    
    
    
    function dropdb($db_name)
    {
        $this->db_name = $db_name;
        if(!empty($this->db_name) AND $this->connect !== FALSE)
        {
            $this->result = @mysql_query('DROP ' DATABASE '.$this->db_name);
            $this->nbr_requete++;
            return $this->result;
        }
        die('Impossible de supprimer la base de données.');
    }
    
    
    
    function create_database_query($db_name)
    {
        $this->db_name = $db_name;
        if(!empty($this->db_name) AND $this->connect !== FALSE)
        {
            $this->result = @mysql_query('CREATE DATABASE '.$this->db_name);
            $this->nbr_requete++;
            $this->error = ($this->result === FALSE) ? TRUE : FALSE;
            $this->result = ($this->error) ? $this->db_name."\n".mysql_errno($this->connect).' : '.mysql_error($this->connect) : $this->result;
            if ($this->error) die($this->result);
            return $this->result;
        }
        $this->error = TRUE;
        die('Impossible de créer une nouvelle base de donnée.');
    }
    
    
    
    function ping($connect)
    {
        $this->connect = $connect;
        $this->ping = @mysql_ping($this->connect);
        if ($this->ping !== FALSE)
        {
            return TRUE;
        }
        else
        {
        die('La reconnexion a échouée.');
        return FALSE;
        }
    }
    
    
    
    function encoding($connect)
    {
        $this->connect = $connect;
        $this->encoding = @mysql_client_encoding($this->connect);
        if ($this->encoding !== FALSE)
        {
            return TRUE;
        }
        else
        {
        die('Impossible de retourner le jeu de charactère.');
        return FALSE;
        }
    }
    

    
    function close()
    {
        if ($this->connect !== FALSE)
        {
            $this->connect = @mysql_close($this->connect);
            return $this->connect;
        }
        return FALSE;
    }

    
    
    function change_db($database)
    {
        if ($this->connect !== FALSE)
        {
            $this->database = @mysql_select_db($database,$this->connect);
            if ($this->database === FALSE)
            {
                @mysql_close($this->connect);
                $this->connect = FALSE;
                die('Impossible de changer de Base de donnée.');
            }
            return TRUE;
        }
        return FALSE;
    }
    
    
    
    function listable($db_name)
    {
        $this->db_name = $db_name;
        if($this->connect !== FALSE)
        {
            $this->listable = mysql_list_tables($db_name);
            if($this->listable !== FALSE)
            {
                return $this->listable;
            }
            else
            {
                die('Impossible de lister les tables de la base de donnée');
            }
        }
        die('Vous n\'êtes pas connecté');
    }

    
    
    function query($query)
    {
        $this->query = $query;
        if(!empty($this->query) AND $this->connect !== FALSE)
        {
            $this->result = @mysql_query($this->query,$this->connect);
            $this->nbr_requete++;
            
            $this->error = ($this->result === FALSE) ? TRUE : FALSE;
            
            $this->result = ($this->error) ? $this->query."\n".mysql_errno($this->connect).' : '.mysql_error($this->connect) : $this->result;
            
            if ($this->error) die($this->result);

            return $this->result;
        }
        $this->error = TRUE;
        die('La requête SQL et vide et/ou vous n\'êtes pas connecté');
    }
    
    
    
    function numfields($result)
    {
        $this->result = $result;
        if($this->connect !== FALSE)
        {
        $this->row = @mysql_num_fields($this->result);
        return $this->row;
        }
    }    
    
    
    
    function fieldtype($result, $field_offset)
    {
        $this->result = $result;
        $this->field_offset = $field_offset;
        if($this->connect !== FALSE)
        {
        $this->row = @mysql_field_type($this->result, $this->field_offset);
        return $this->row;
        }
    }


    
    function fieldname($result, $field_offset)
    {
        $this->result = $result;
        $this->field_offset = $field_offset;
        if($this->connect !== FALSE)
        {
        $this->row = @mysql_field_name($this->result, $this->field_offset);
        return $this->row;
        }
    }
    
    
    
    function fieldlen($result, $field_offset)
    {
        $this->result = $result;
        $this->field_offset = $field_offset;
        if($this->connect !== FALSE)
        {
        $this->row = @mysql_field_len($this->result, $this->field_offset);
        return $this->row;
        }
    }
    
    
    
    function fiedflags($result, $field_offset)
    {
        $this->result = $result;
        $this->field_offset = $field_offset;
        if($this->connect !== FALSE)
        {
        $this->row = @mysql_field_flags($this->result, $this->field_offset);
        return $this->row;
        }
    }
    
    
    
    function fetchrow($result)
    {
        $this->result = $result;
        if($this->connect !== FALSE)
        {
        $this->row = @mysql_fetch_row($this->result);
        return $this->row;
        }
    }
    
    
    
    function fetchobject($result)
    {
        $this->result = $result;
        if($this->connect !== FALSE)
        {
        $this->row = @mysql_fetch_object($this->result);
        return $this->row;
        }
    }    
    
    
    
    function result($result)
    {
        $this->result = $result;
        if($this->connect !== FALSE)
        {
        $this->row = @mysql_free_result($this->result);
        return $this->row;
        }
    }
    
    
    
    function numrows($result)
    {
        $this->result = $result;
        if($this->connect !== FALSE)
        {
        $this->row = @mysql_num_rows($this->result);
        return $this->row;
        }
    }    
    
    
    
    function assoc($result)
    {
        $this->result = $result;
        if($this->connect !== FALSE)
        {
        $this->row = @mysql_fetch_assoc($this->result);
        return $this->row;
        }
    }
    
    
    
    function affected($result)
    {
        $this->result = $result;
        if($this->connect !== FALSE)
        {
        $this->row = @mysql_affected_rows($this->result);
        return $this->row;
        }
    }
    
    
    
    function fetcharray($result)
    {
        $this->result = $result;
        if($this->connect !== FALSE)
        {
        $this->row = @mysql_fetch_array($this->result);
        return $this->row;
        }
    }
    
}
?>

Je ne sais pas si l'indentation va bien s'effectuer sinon je l'enverrais à ceux qui veulent l'utiliser.

#4 Re : Le coin des bavards » Une class SQL » 2006-04-25 21:07:29

Voila alors j'ai fais une grosse modification de ma class SQL qui en est déjà à ça version 3.0.0 comprenant 395 ligne. Elle est sous license GNU GPL (cf: www.gnu.org)
Elle est très complète, avec vous pouvez faire une SGBD facilement, la voici:

<?php
/***************************************************************************
 *                    sql_pusher.class.php
 *
 *    commencé              : 19/03/2006
 *    copyright            : GoldenEye
 *    mail                : goldeneye@jeuxvideopop.info
 *    site web de l'auteur    : http://www.jeuxvideopop.info
 *    version du programme    : 3.0.0
 *    dernière modification    : 25 avril 2006
 *
 *
 ***************************************************************************/

/***************************************************************************
*
*  Ce programme est un programme libre; vous pouvez le reditribuer et/ou le modifier
*  sous les termes de la GNU (License au grand public) publié par
*  la Free Software Foudation (FSF); 
*
*
****************************************************************************/

/***************************************************************************
 *
 *   This program is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *    (at your option) any later version.
 *
 *   This program is distributed in the hope that it will be useful,
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *   You should have received a copy of the GNU General Public License
 *   along with this program; if not, write to the Free Software
 *   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 *
 *
 ***************************************************************************/
//Déclaration de la class SQL
class sql
{
    //Déclaration de la variable $nbr_requete et mise à zéro de cette variable
    var $nbr_requete = 0;
    //Déclaration de la fonction connect (Pour se connecter à MySQL)
    function sql($host,$username,$password,$database)
    {
        //Connexion à mysql
        $this->connect = @mysql_connect($host,$username,$password);
        //Si on est connecté (si la valeur de $this->connect est différente de FALSE)
        if ($this->connect !== FALSE)
        {
            //On selectionne la Base de donnée souhaitée
            $this->database = @mysql_select_db($database,$this->connect);
            //Si la valeur de $this->database est identique à FALSE (impossible de selectionner la BDD)
            if ($this->database === FALSE)
            {
                //Deconnection de MySQL (puisque la base de donnée n'a pas été selectionnée)
                @mysql_close($this->connect);
                //Et on prévient que la variable $this->connect va valoir FALSE
                $this->connect = FALSE;
                //On tue la phrase d'erreur et on la remplace
                die('Impossible de selectionner la Base de Donnée.');
            }
            //$this->connect va retourner TRUE
            return TRUE;
        }
        //Si la connexion ne s'est pas effectuée
        die('Impossible de se connecter à la Base de donnée.');
    }
    function create_database($db_name, $connect = $this->connect)
    {
        //On  créé $this->db_name
        $this->db_name = $db_name;
        // On créé $this->connect
        $this->connect = $connect;
        // Si $this->db_name  n'est pas vide et que nous sommes connecté
        if(!empty($this->db_name) AND $this->connect !== FALSE)
        {
            // On lance la création de la base de donnée
            $this->create = mysql_create_db($this->db_name, $this->connect);
            // On rajoute +1 aux nombres de requêtes
            $this->nbr_requete++;
            // On renvoi la requête
            return $this->create;
        }
        // Ca n'a pas fonctionné on envoi une erreur
        die('Impossible de créer une nouvelle base de donnée.');
    }
    function create_database_query($db_name,$connect = $this->connect)
    {
        // On créé $this->db_name
        $this->db_name = $db_name;
        // On créé $this->connect
        $this->connect = $connect;
        // Si $this->db_name  n'est pas vide et que nous sommes connecté
        if(!empty($this->db_name) AND $this->connect !== FALSE)
        {
            // On lance la requête
            $this->result = @mysql_query('CREATE DATABASE '.$this->db_name,$this->connect);
            // On ajoute + 1 aux nombre de requêtes
            $this->nbr_requete++;
            //$this->error = Si $this->result vaut FALSE $this->eror vaut TRUE sinon $this->error vaut FALSE
            $this->error = ($this->result === FALSE) ? TRUE : FALSE;
            // Si il y a une erreur on créé le message d'ereur MySQL
            $this->result = ($this->error) ? $this->db_name."\n".mysql_errno($this->connect).' : '.mysql_error($this->connect) : $this->result;
            // Il y a bien erreur on affiche l'erreur
            if ($this->error) die($this->result);
            // On envoie le resultat de la requête.
            return $this->result;
        }
        //Sinon $this->error vaut TRUE
        $this->error = TRUE;
        // On affiche l'ereur
        die('Impossible de créer une nouvelle base de donnée.');
    }
    function ping($connect = $this->connect)
    {
        // On prévient que this->connect est $connect
        $this->connect = $connect;
        // On effectue un mysql_ping
        $this->ping = @mysql_ping($this->connect);
        // Si $this->ping à été activé et fonctionne
        if ($this->ping !== FALSE)
        {
            // On return TRUE
            return TRUE;
        }
        else
        {
        // On affiche un message d'erreur
        die('La reconnection a échouée.');
        // On return FALSE
        return FALSE;
        }
    }
    function encoding($connect = $this->connect)
    {
        //On créé $this->connect
        $this->connect = $connect;
        // On effectue un mysql_client_encoding
        $this->encoding = @mysql_client_encoding($this->connect);
        // Si $this-encoding à été activé et fonctionne
        if ($this->encoding !== FALSE)
        {
            // On return TRUE
            return TRUE;
        }
        else
        {
        // On affiche un message d'erreur
        die('Impossible de retourner le jeu de charactère.');
        // On return FALSE
        return FALSE;
        }
    }
    //Déclaration de la fonction close (Pour fermer MySQL)
    function close()
    {
        //Si on est connecté à MySQL
        if ($this->connect !== FALSE)
        {
            //Deconnection à MySQL
            $this->connect = @mysql_close($this->connect);
            return $this->connect;
        }
        //$this->connect retourne à présent FALSE (donc non connecté)
        return FALSE;
    }
    //Déclaration de la fonction change_db (pour changer de base de donnée)
    function change_db($database)
    {
        //Si on est connecté à MySQL
        if ($this->connect !== FALSE)
        {
            //On choisi la base de donnée
            $this->database = @mysql_select_db($database,$this->connect);
            //Si le changement de base de donnée echoue
            if ($this->database === FALSE)
            {
                //On ferme la connexion
                @mysql_close($this->connect);
                //On déclare que $this->connect vaut FALSE
                $this->connect = FALSE;
                //Et on affiche l'erreur
                die('Impossible de changer de Base de donnée.');
            }
            //Si     le changement a réussi, on retourne $this->database comme TRUE
            return TRUE;
        }
        //Sinon on retourne FALSE
        return FALSE;
    }
    function listable($db_name)
    {
        // On créé la variable de la class
        $this->db_name = $db_name;
        // Si nous sommes connecté
        if($this->connect !== FALSE)
        {
            // On lance le listage
            $this->listable = mysql_query('SHOW TABLES FROM '.$db_name);
            // Si $this->listable est différent de FALSE
            if($this->listable !== FALSE)
            {
                //On renvoi $this->listable
                return $this->listable;
            }
            else
            {
                //On affiche un message d'erreur
                die('Impossible de lister les tables de la base de donnée: '.$db_name);
            }
        }
        // On affiche un mesage d'erreur
        die('Vous n\'êtes pas connecté');
    }
    //On déclare la fonction query
    function query($query)
    {
        // On créé $this->query
        $this->query = $query;
        // Si la requête n'est pas vide et que nous sommes connecté
        if(!empty($this->query) AND $this->connect !== FALSE)
        {
            // On lance la requête
            $this->result = @mysql_query($this->query,$this->connect);
            // On ajoute + 1 aux nombre de requêtes
            $this->nbr_requete++;
            //$this->error = Si $this->result vaut FALSE $this->eror vaut TRUE sinon $this->error vaut FALSE
            $this->error = ($this->result === FALSE) ? TRUE : FALSE;
            // Si il y a une erreur on créé le message d'ereur MySQL
            $this->result = ($this->error) ? $this->query."\n".mysql_errno($this->connect).' : '.mysql_error($this->connect) : $this->result;
            // Il y a bien erreur on affiche l'erreur
            if ($this->error) die($this->result);
            // On envoie le resultat de la requête.
            return $this->result;
        }
        //Sinon $this->error vaut TRUE
        $this->error = TRUE;
        // On affiche l'ereur
        die('La requête SQL et vide et/ou vous n\'êtes pas connecté');
    }
    function numfields($result)
    {
        // On créé $this->result
        $this->result = $result;
        // Si on est connecté
        if($this->connect !== FALSE)
        {
        // On fait un mysql_field_name
        $this->row = @mysql_num_fields($this->result);
        return $this->row;
        }
    }    
    function fieldtype($result, $field_offset)
    {
        // On créé $this->result & $this->field_offset
        $this->result = $result;
        $this->field_offset = $field_offset;
        // Si on est connecté
        if($this->connect !== FALSE)
        {
        // On fait un mysql_field_name
        $this->row = @mysql_field_type($this->result, $this->field_offset);
        return $this->row;
        }
    }    
    function fieldname($result, $field_offset)
    {
        // On créé $this->result & $this->field_offset
        $this->result = $result;
        $this->field_offset = $field_offset;
        // Si on est connecté
        if($this->connect !== FALSE)
        {
        // On fait un mysql_field_name
        $this->row = @mysql_field_name($this->result, $this->field_offset);
        return $this->row;
        }
    }
    function fieldlen($result, $field_offset = 0)
    {
        // On créé $this->result & $this->field_offset
        $this->result = $result;
        $this->field_offset = $field_offset;
        // Si on est connecté
        if($this->connect !== FALSE)
        {
        // On fait un mysql_field_len
        $this->row = @mysql_field_len($this->result, $this->field_offset);
        return $this->row;
        }
    }
    function fiedflags($result, $field_offset = 0)
    {
        // On créé $this->result & $this->field_offset
        $this->result = $result;
        $this->field_offset = $field_offset;
        // Si on est connecté
        if($this->connect !== FALSE)
        {
        // On fait un mysql_field_flags
        $this->row = @mysql_field_flags($this->result, $this->field_offset);
        return $this->row;
        }
    }
    function fetchrow($result)
    {
        //On créé $this->resukt
        $this->result = $result;
        // Si on est connecté
        if($this->connect !== FALSE)
        {
        //On fait un mysql_fetch_row
        $this->row = @mysql_fetch_row($this->result);
        return $this->row;
        }
    }
    function fetchobject($result)
    {
        //On créé $this->resukt
        $this->result = $result;
        // Si on est connecté
        if($this->connect !== FALSE)
        {
        //On fait un mysql_fetch_object
        $this->row = @mysql_fetch_object($this->result);
        return $this->row;
        }
    }    
    function result($result)
    {
        //On créé $this->result
        $this->result = $result;
        //Si on est connecté
        if($this->connect !== FALSE)
        {
        //On fait un mysql_fetch_array
        $this->row = @mysql_free_result($this->result);
        return $this->row;
        }
    }
    function numrows($result)
    {
        //On créé $this->result
        $this->result = $result;
        //Si on est connecté
        if($this->connect !== FALSE)
        {
        //On fait un mysql_fetch_array
        $this->row = @mysql_num_row($this->result);
        return $this->row;
        }
    }    
    function assoc($result)
    {
        //On créé $this->result
        $this->result = $result;
        //Si on est connecté
        if($this->connect !== FALSE)
        {
        //On fait un mysql_fetch_array
        $this->row = @mysql_fetch_assoc($this->result);
        return $this->row;
        }
    }
    function affected($result)
    {
        //On créé $this->result
        $this->result = $result;
        //Si on est connecté
        if($this->connect !== FALSE)
        {
        //On fait un mysql_fetch_array
        $this->row = @mysql_affected_rows($this->result);
        return $this->row;
        }
    }
    function fetcharray($result)
    {
        //On créé $this->result
        $this->result = $result;
        //Si on est connecté
        if($this->connect !== FALSE)
        {
        //On fait un mysql_fetch_array
        $this->row = @mysql_fetch_array($this->result);
        return $this->row;
        }
    }
}
?>

Voici à quoi servent les fonctions:

sql() : prend 4 paramètres: l'host, le pseudo, le mot de passe et le nom de la base de donnée ( se connecte)
create_database(): prend 2 paramètre dans le 2ème est facultatif: le nom de la base de donnée et la connexion en cours (cette fonction n'est pas conseillé pour créé une base de donnée) (créé une nouvelle base de donnée)
create_database_query(): Pareil que tout à l'heure sauf que cette fonction est plus conseillé
ping(): Prend un paramètre optionnel : la connexion en cours (se reconnecte à mysql (cf: fr2.php.net/mysql_ping))
encoding(): Affiche le jeu de charactère de MySQL qui prend le même paramètre optionnel que ping()
close(): Ferme la connexion en cours
change_db(): prend un paramètre: le nom de la base de donée à prendre. (Fait un changement de Base de donnée)
listable(): prend un paramètre: le nom de la base de donnée (Affiche toute les tables d'une base de donnée)
query(): prend un paramètre: la requête a effectuer (fait un mysql_query())
numfields(): Retourne le nombre de champs ans une table. Prend le paramètre de la requête à prendre pour ce retorunement
fieldtype(): Prend 2 paramètres: la requête à prendre et le nombre de type à afficher ( même nombre que de champs ) (affiche le type de champs (int, text, begint, ...)
fieldname(): Prend 2 paramètres: Les même que au-dessus (Affiche le nom de champs)
fieldlen(): Prend les 2 mêmes paramètres que au-dessus (Affiche la taille maximale autorisé du champs)
fieldflags(): Prend les 2 même paramètre (Affiche si le champ est en NULL, Not Null, Primary Key, ....)
fetchrow(): Fonctionne pareil que mysql_fetch_row()
fetchobject(): Je ne sais pas comment vous expliquer alors allez sur fr2.php.net/mysql_fetch_object
result(): Fonctionne pareil que mysql_free_result()
numrows(): Fonctionne pareil que mysql_num_rows()
assoc(): Fonctionne pareil que mysql_fetch_assoc()
affected(): Fonctionne pareil que mysql_affected_rows()
fetcharray(): Fonctionne pareil que mysql_fetch_array()

#5 Re : Le coin des bavards » Une class SQL » 2006-03-26 20:41:02

Voila j'ai fait les modifications:

<?php
/***************************************************************************
 *                    sql_pusher.class.php
 *                ------------------------
 *    commencé              : 19/03/2006
 *    copyright            :  GoldenEye
 *        mail                                   :  goldeneye@jeuxvideopop.info
 *    site web de l'auteur         :  http://www.jeuxvideopop.info
 *        version du programme     : 2 beta 5
 *        dernière modification     : 22 mars 2006
 *        dernier debogage beta    : 5 
 *
 *
 ***************************************************************************/

/***************************************************************************
*
*  Ce programme est un programme libre; vous pouvez le reditribuer et/ou le modifier
*  sous les termes de la GNU (License au grand public) publié par
*  la Free Software Foudation (FSF); 
*
*
****************************************************************************/

/***************************************************************************
 *
 *  This program is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *    (at your option) any later version.
 *
 *   This program is distributed in the hope that it will be useful,
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *   You should have received a copy of the GNU General Public License
 *   along with this program; if not, write to the Free Software
 *   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 *
 *
 ***************************************************************************/
//Déclaration de la class SQL
class sql
    {
    //Déclaration de la variable $nbr_requete et mise à zéro de cette variable
    var $nbr_requete = 0;
    //Déclaration de la fonction connect (Pour se connecter à MySQL)
    function connect($host,$username,$password,$database)
        {
        //Connexion à mysql
        $this->connect = @mysql_connect($host,$username,$password);
        //Si on est connecté (si la valeur de $this->connect est différente de FALSE)
        if ($this->connect !== FALSE)
            {
            //On selectionne la Base de donnée souhaitée
            $this->database = @mysql_select_db($database,$this->connect);
            //Si la valeur de $this->database est identique à FALSE (impossible de selectionner la BDD)
            if ($this->database === FALSE)
                {
                //Deconnection de MySQL (puisque la base de donnée n'a pas été selectionnée)
                @mysql_close($this->connect);
                //Et on prévient que la variable $this->connect va valoir FALSE
                $this->connect = FALSE;
                //On tue la phrase d'erreur et on la remplace
                die('Impossible de selectionner la Base de Donnée.');
                }
            //$this->connect va retourner TRUE
            return TRUE;
            }
        //Si la connexion ne s'est pas effectuée    
        die('Impossible de se connecter à la Base de donnée.');
        }
    //Déclaration de la fonction close (Pour fermer MySQL)        
    function close()
        {
        //Si on est connecté à MySQL
        if ($this->connect !== FALSE)
            {
            //Deconnection à MySQL
            $this->connect = @mysql_close($this->connect);
            return $this->connect;
            }
        //$this->connect retourne à présent FALSE (donc non connecté)    
        return FALSE;
        }
    //Déclaration de la fonction change_db (pour changer de base de donnée)    
    function change_db($database)
        {
        //Si on est connecté à MySQL
        if ($this->connect !== FALSE)
            {
            //On choisi la base de donnée
            $this->database = @mysql_select_db($database,$this->connect);
            //Si le changement de base de donnée echoue
            if ($this->database === FALSE)
                {
                //On ferme la connexion
                @mysql_close($this->connect);
                //On déclare que $this->connect vaut FALSE
                $this->connect = FALSE;
                //Et on affiche l'erreur
                die('Impossible de changer de Base de donnée.');
                }
            //Si     le changement a réussi, on retourne $this->database comme TRUE
            return TRUE;
            }
        //Sinon on retourne FALSE    
        return FALSE;
        }
    //On déclare la fonction query    
    function query($query)
        {
        //On prévient un changement de variable
        $this->query = $query;
        //Si $this->query et vide et que $this->connect ne retourne pas FALSE
        if (!empty($this->query) AND $this->connect !== FALSE)
            {
            //On execute la requête
            $this->result = @mysql_query($this->query,$this->connect);
            //Et on ajoute une requête en plus à chaque requête effectués
            $this->nbr_requete++;
            return TRUE;
            }
        //Sinon    
        else
            {
            //On affiche une erreur de reqêuete et de connection
            die('La requête SQL est vide ou vous n\'êtes pas connecté.');
            //On retourne false
            return FALSE;
            }
        }
    //On déclare la fonction fetch_array    
    function fetch_array($result)
        {
        $result = $this->result;
        //Si on est connecté et qu'il y a une requête
        if ($this->connect !== FALSE AND $this->query !== FALSE)
            {
            //On fait le mysql_fetch_array
            $this->row = @mysql_fetch_array($this->result);
            //Et on retourne TRUE
            return TRUE;
            }
        //Sinon    
        else
            {
            //On affiche une erreur
            die('Vous n\'êtes pas connecté et/ou il n\'y a pas de requête.');
            //On retourne FALSE
            return FALSE;
            }
        }
    //On déclare la fonction query_fetch_array    
    function query_fetch_array($query)
        {
        //On prévient un changement de variable
        $this->query = $query;
        //Si $this->query et vide et que $this->connect ne retourne pas FALSE
        if (!empty($this->query) AND $this->connect !== FALSE)
            {
            //On execute la requête
            $this->result = @mysql_query($this->query,$this->connect);
            //On fait le mysql_fetch_array
            $this->row = @mysql_fetch_array($this->result);
            //Et on ajoute une requête en plus à chaque requête effectués
            $this->nbr_requete++;
            return TRUE;
            }
        //Sinon    
        else
            {
            //On affiche une erreur de reqêuete et de connection
            die('La requête SQL est vide et/ou vous n\'êtes pas connecté.');
            //On retourne false
            return FALSE;
            }
        }

    } 
?>

malheuresement la fonction query_fetch_array a l'ai de boguer

#6 Re : Le coin des bavards » Une class SQL » 2006-03-24 18:18:17

je comprend pas très bien et merci pour le signalement des erreurs (je suis seulement en beta 2)

#7 Re : Le coin des bavards » Une class SQL » 2006-03-24 18:06:00

Salut, j'ai créé une class SQL qui est sous license GPL (GNU) j'aimerais votre avis:

<?php
/***************************************************************************
 *               sql_pusher.class.php
 *            ------------------------
 *       commencé                   : 19/03/2006
 *       copyright                 :  GoldenEye
 *       mail                                   :  goldeneye@jeuxvideopop.info
 *       site web de l'auteur         :  http://www.jeuxvideopop.info
 *      version du programme     : 2 beta 2
 *        dernière modification     : 22 mars 2006
 *
 *
 ***************************************************************************/

/***************************************************************************
*
*  Ce programme est un programme libre; vous pouvez le reditribuer et/ou le modifier
*  sous les termes de la GNU (License au grand public) publié par
*  la Free Software Foudation (FSF);
*
*
****************************************************************************/

/***************************************************************************
 *
 *  This program is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *    (at your option) any later version.
 *
 *   This program is distributed in the hope that it will be useful,
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *   You should have received a copy of the GNU General Public License
 *   along with this program; if not, write to the Free Software
 *   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 *
 *
 ***************************************************************************/
//Déclaration de la class SQL
class sql
    {
    //Déclaration de la variable $nbr_requete et mise à zéro de cette variable
    var $nbr_requete = 0;
    //Déclaration de la fonction connect (Pour se connecter à MySQL)
    function connect($host,$username,$password,$database)
        {
        //Connexion à mysql
        $this->connect = @mysql_connect($host,$username,$password);
        //Si on est connecté (si la valeur de $this->connect est différente de FALSE)
        if ($this->connect !== FALSE)
            {
            //On selectionne la Base de donnée souhaitée
            $this->database = @mysql_select_db($database,$this->connect);
            //Si la valeur de $this->database est identique à FALSE (impossible de selectionner la BDD)
            if ($this->database === FALSE)
                {
                //Deconnection de MySQL (puisque la base de donnée n'a pas été selectionnée)
                @mysql_close($this->connect);
                //Et on prévient que la variable $this->connect va valoir FALSE
                $this->connect = FALSE;
                //On tue la phrase d'erreur et on la remplace
                die('Impossible de selectionner la Base de Donnée.');
                }
                //$this->connect va retourner TRUE
                return TRUE;
                }
            //Si la connexion ne s'est pas effectuée   
            die('Impossible de se connecter à la Base de donnée.');
        }
    //Déclaration de la fonction close (Pour fermer MySQL)      
    function close()
        {
        //Si on est connecté à MySQL
        if ($this->connect !== FALSE)
            {
            //Deconnection à MySQL
            $this->connect = @mysql_close($this->connect);
            return $this->connect;
            }
        //Si $this-connect vaut TRUE   
        else ($this->connect === FALSE)
            {
            //On prévient qu'on est pas connecté à MySQL
            die('Veuillez supprimer la fonction close du fichier', __FILE__,' ligne', __LINE__ );
            }
            //$this->connect retourne à présent FALSE (donc non connecté)   
            return FALSE;
        }
    //Déclaration de la fonction change_db (pour changer de base de donnée)   
    function change_db($database)
        {
        //Si on est connecté à MySQL
        if ($this->connect !== FALSE)
            {
            //On choisi la base de donnée
            $this->database = @mysql_select_db($database,$this->connect);
            //Si le changement de base de donnée echoue
            if ($this->database === FALSE)
                {
                //On ferme la connexion
                @mysql_close($this->connect);
                //On déclare que $this->connect vaut FALSE
                $this->connect = FALSE;
                //Et on affiche l'erreur
                die('Impossible de changer de Base de donnée.');
                }
            //Si le changement a réussi, on retourne $this->database comme TRUE
            return TRUE;
            }
        //Sinon on retourne FALSE   
        return FALSE;
        }
    //On déclare la fonction query   
    function query($query)
        {
        //On prévient un changement de variable
        $this->query = $query;
        //Si $this->query et vide et que $this->connect ne retourne pas FALSE
        if (!empty($this->query) AND $this->connect !== FALSE)
            {
            //On execute la requête
            $this->result = @mysql_query($this->query,$this->connect);
            //Et on ajoute une requête en plus à chaque requête effectués
            $this->nbr_requete++;
            return TRUE;
            }
        //Sinon   
        else
            {
            //On affiche une erreur de reqêuete et de connection
            die('La requête SQL est vide ou vous n\'êtes pas connecté.');
            //On retourne false
            return FALSE;
            }
        }
    //On déclare la fonction fetch_array   
    function fetch_array($this->result)
        {
        //Si on est connecté et qu'il y a une requête
        if ($this->connect !== FALSE AND $this->query !== FALSE)
            {
            //On fait le mysql_fetch_array
            $this->row = @mysql_fetch_array($this->result);
            //Et on retourne TRUE
            return TRUE;
            }
        //Sinon   
        else
            {
            //On affiche une erreur
            die('Vous n\'êtes pas connecté et/ou il n\'y a pas de requête.');
            //On retourne FALSE
            return FALSE;
            }
        }
    //On déclare la fonction query_fetch_array   
    function query_fetch_array($query)
            {
        //On prévient un changement de variable
        $this->query = $query;
        //Si $this->query et vide et que $this->connect ne retourne pas FALSE
        if (!empty($this->query) AND $this->connect !== FALSE)
            {
            //On execute la requête
            $this->result = @mysql_query($this->query,$this->connect);
            //On fait le mysql_fetch_array
            $this->row = @mysql_fetch_array($this->result);
            //Et on ajoute une requête en plus à chaque requête effectués
            $this->nbr_requete++;
            return TRUE;
            }
        //Sinon   
        else
            {
            //On affiche une erreur de reqêuete et de connection
            die('La requête SQL est vide et/ou vous n\'êtes pas connecté.');
            //On retourne false
            return FALSE;
            }
        }

    }
?> 

Pied de page des forums

Propulsé par FluxBB