Vous n'êtes pas identifié(e).
[25 janvier 2021] - Publication de Wanewsletter 3.1.0
Pages : 1
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?
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);
}
}
?>
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.
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()
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
je comprend pas très bien et merci pour le signalement des erreurs (je suis seulement en beta 2)
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;
}
}
}
?>
Pages : 1