JeuWeb - Crée ton jeu par navigateur

Version complète : sql.class => une aide pour ceux qui veulent commencer la POO sans se casser la tete.
Vous consultez actuellement la version basse qualité d'un document. Voir la version complète avec le bon formatage.
pardonnez moi d'avance, j'essairait d'etre aussi clair que possible. J'ai crée cette classe parce que j'avais eu du mal avec la POO melangé au SQL. c'est peut-etre sévèrement trash. mais ça marche pas trop mal sur mon serveur et ça rends la vie beucoup plus facile.
ce code se montre particulièrement utile. surtout au niveau d'un admin souple et rapide à mettre en place . mais il ne vous degage pas d'un vrai travail de programmation.

Code PHP :
//!\attention on demarre
class sql


le constructeur avec en param le nom de la table...
comme j'ai un peu de mal avec __construct( ) - sans doute le __ qui me gene - j'utilise la répétition du nom de classe
Code PHP :
    function sql($table )
    {
        
$this->table $table ;
        
$sql ="describe ".$this->table." ;" ;
        
$infos mysql_query($sql) ;
        while(
$donnees mysql_fetch_array($infos))
            
$tab_donnees[] = $donnees;
            
        foreach(
$tab_donnees as $data => $club)
        {
            
//on recupere le nom et la valeur par deffaut
            
            
$titre $club["Field"];
            
$value $club["Default"];
            
// on crée la variable d'objet
            
$this->$titre $value;
        }
    } 

la methode get permet de recuperer l'objet specifique sur lequel on veut travailler...

Code PHP :
public function get($id $field="")
    {
        
$donnees = array();
        
        if(
$field==""$field "id";
        
        
$this->$field $id;
        
        
$sql ="SELECT * FROM `".$this->table."` WHERE $field='$id'" ;
        
        
$infos mysql_query($sql) ;
        
$donnees mysql_fetch_array($infos);
        
        if(!empty(
$donnees)) 
        {
            foreach(
$donnees as $name => $value)
            {    
                if(!
is_numeric($name)) $this->$name $value ;
            }
            return 
true;
        }
        else return 
false ;        
    } 

le boucles dans les methodes insert et update permettent de former de requetes nettoyé de toutes erreurs de variabbles
Code PHP :
public function insert()
    {            
        foreach (
$this as $name => $value
        {
            if(
$name != "table" )
            {
                
$into .= ",`$name`" ;
                
$values .= ",'$value'";
            }
        }
                
        
$into ltrim($into,",");
        
$values ltrim($values,",");
                
// ltrim pour eliminer les virgules en trop.
        
$sql "insert into ".$this->table." ($into) values ($values)";
        
$infos mysql_query($sql);

        return 
mysql_insert_id();//LAST_INSERT_ID() ; 
    
}
    
    public function 
update()
    {
        foreach (
$this as $name => $value
        {
            if( 
$name!="id" and $name != "table" )$set .= ",`$name` = '$value'" ;
        }
        
$set ltrim($set",");
// ltrim pour eliminer les virgules en trop.
        
$sql ="update `".$this->table."` set $set  where `id` = '".$this->id."' ";
        
$infos mysql_query($sql)or die( $sql."\n<br />\n impossible d'executer la reqete : \n<br />\n ".mysql_error() ) ;    
        
        
//print "<p>$sql</p>";
        
        
return $this->id;
    } 

on doit aussi pouvoir effacer

Code PHP :
public function delete($id="")
    {
        if(
$id=="")$id $this->id ;
        
        
$sql ="delete from `".$this->table."` where `id` = '".$id."' ";
        
$infos mysql_query($sql) ;    
    } 

la methode select ne porte pas sur un enregistrement mais sur un ou plusieurs. vous fixer la condition, comme une requete normale et on vous retourne les enregistrement sous un array.

Code PHP :
    public function select($condition="")
    {
        
$donnees = array();
        
$result = array();
        
        
$sql ="SELECT * FROM `".$this->table."` $condition " ;
        
        
//print "<p>$sql</p>";
        
        
$infos mysql_query($sql) ;
        while(
$donnees mysql_fetch_array($infos))
        {
            
$result[] = $donnees ;
        }
        return 
$result ;        
    } 

getChamps permet de controler l'existence d'un champs.
set permet de modifier sa valeur via l'objet si vous ne preferez pas le faire en dur dans le code.

Code PHP :
        public function getChamps($champs)
    {
        
$retour false;
        foreach( 
$this as $field => $val
        {
            if(
$field == $champs $retour true;
        }
        return 
$retour ;
    }
    
    public function 
set($champs$value)
    {
        
$this->$champs $value ;
    } 

la fonction add retourne un tableau d'enregistrement. avec des champs de saisie formés selon le type des données.

Code PHP :
    public function add()
    {
        
$array_edit = array();
        
        
$sql ="describe ".$this->table." ;" ;
        
$infos mysql_query($sql);
        
        
$array_edit["form_init"] = '<form method="post" >'
        
$array_edit["table_init"] = '<table>'
        
$array_edit["caption"] = '<caption><h1>'.$this->table.'</h1></caption>'

        while(
$donnees mysql_fetch_array($infos))
        {
            if(
eregi('varchar',$donnees["Type"])) 
                           
$array_edit[$donnees["Field"]] .= '<tr>
                                                 <td>'
.$donnees["Field"].'</td>            
                                                <td><input type="text" name="'
.$donnees["Field"].'" /></td></tr>'
            
                        if(
eregi('int',$donnees["Type"])) 
            {
                if(
$donnees["Field"]!="id")    
                                     
$array_edit[$donnees["Field"]] = '<tr>
                                                            <td>'
.$donnees["Field"].'</td>
                                                            <td><input type="text" size="2" name="'
.$donnees["Field"].'" /></td>
                                                             </tr>'

            }

            if(
eregi('decimal',$donnees["Type"])) 
                               
$array_edit[$donnees["Field"]] = '<tr>
                                                  <td>'
.$donnees["Field"].'</td>
                                                   <td><input type="text" size="2" name="'
.$donnees["Field"].'" /></td>
                                                   </tr>'
;
 
            if(
eregi('text',$donnees["Type"]))      
                                    
$array_edit[$donnees["Field"]] = '<tr>
                                                      <td>'
.$donnees["Field"].'</td>
                                                       <td><textarea name="'
.$donnees["Field"].'"></textarea></td>
                                                          </tr>'
;
        }
        
        
$array_edit["submit"] = '<tr><td></td><td><input type="submit" name="add" /></td></tr>'

        
$array_edit["table_close"] = '</table>';
        
$array_edit["form_close"] = '</form>'
        
        return 
$array_edit;
    } 



la fonction edit retourne un tableau d'edition d'un enregistrement. avec des champs de saisie formés selon le type des données.

Code PHP :
    public function edit($id)
    {
        
$array_edit = array();
        
        
$this->get($id);
        
$sql ="describe ".$this->table." ;" ;
        
$infos mysql_query($sql) ;
        
        
$array_edit["form_init"] = '<form method="post" >'
        
$array_edit["table_init"] = '<table>'
        
$array_edit["caption"] = '<caption><h1>'.$this->table.'</h1></caption>'
        
                while(
$donnees mysql_fetch_array($infos))
        {

            if(
eregi('varchar',$donnees["Type"]))     
                                           
$array_edit[$donnees["Field"]] = '<tr>
                                                <td>'
.$donnees["Field"].'</td>
                                                 <td><input type="text" name="'
.$donnees["Field"].'" value="'.$this->$donnees["Field"].'" /></td>
                                                 </tr>'


            if(
eregi('int',$donnees["Type"]))          
                                  
$array_edit[$donnees["Field"]] = '<tr>
                                               <td>'
.$donnees["Field"].'</td>
                                               <td><input type="text" size="2" name="'
.$donnees["Field"].'" value="'.$this->$donnees["Field"].'" /></td>
                                                </tr>'


            if(
eregi('text',$donnees["Type"]))      
                                      
$array_edit[$donnees["Field"]] = '<tr>
                                              <td>'
.$donnees["Field"].'</td>
                                                <td><textarea name="'
.$donnees["Field"].'">'.$this->$donnees["Field"].'</textarea></td>
                                                 </tr>'
;

            if(
eregi('decimal',$donnees["Type"]))          
                                                 
$array_edit[$donnees["Field"]] = '<tr>
                                                     <td>'
.$donnees["Field"].'</td>
                                                    <td><input type="text" size="2" name="'
.$donnees["Field"].'" value="'.$this->$donnees["Field"].'" /></td>
                                                    </tr>'


        }
        
        
$array_edit["submit"] = '<tr><td></td><td><input type="submit" name="mod" /></td></tr>'

        
$array_edit["table_close"] = '</table>';
        
$array_edit["form_close"] = '</form>'
        
        return 
$array_edit;
    } 

la fonction inspect fourni un tableau des enregistrement avec un lien vers une page d'ajout/edition ou un mode de suppressio

Code PHP :
function inspect($condition="" $url)
    {
        
$table $this->select($condition);
        
        
$array_edit["table_init"] = '<table>'
        
$array_edit["caption"] = '<caption><h1>'.$this->table.'</h1></caption>'

        
$array_edit["th"] .= "<tr>";
        foreach (
$this as $name => $value
        {
            if( 
$name != "table" $array_edit["th"] .= "<th>$name</th>";
        }
        
$array_edit["th"] .= "</tr>";
        
        foreach( 
$table as $ligne )
        {
            
$array_edit[$ligne["id"]] .= "<tr>";
            foreach ( 
$ligne as $i => $piks ){
                                 
// nettoyage des chaines...
                
$piks ereg_replace("<[^>]*>"""trim(strip_tags($piks)) ) ; 
                if(
strlen($piks)>=50
                                          
$piks substr($piks050)."...";
                if(!
is_numeric($i)) 
                                          
$array_edit[$ligne["id"]] .= "<td>".$piks."</td>";
            }

            
$array_edit[$ligne["id"]] .= "<td>
                                     <a href='"
.$url."ordre=edit&table=".$this->table."&id=".$ligne["id"]."' >
                                            <img src='"
.$url."/images/edit.jpg' alt='".$ligne["id"]."' />
                                        </a>
                                    </td>"
;

            
                   
$array_edit[$ligne["id"]] .= "<td>
                                            <a href='"
.$url."ordre=delete&table=".$this->table."&id=".$ligne["id"]."' >
                                                  <img src='"
.$url."/images/delete.gif' alt='".$ligne["id"]."' />
                                             </a>
                                          </td>"
;


            
$array_edit[$ligne["id"]] .="</tr>";
        }
        
$array_edit["nouveau"] = "<tr>
                                <td>nouveau</td>
                                <td>
                                      <a href='"
.$url."ordre=edit&table=".$this->table."' >
                                             <img src='"
.$url."/images/ajout.jpg' alt='".$ligne["id"]."' />
                                      </a>
                                 </td>
                            </tr>"


        
$array_edit["table_close"] = '</table>';
        
        return 
$array_edit;
    } 

voila ce que ça donne à l'utilisation

Code PHP :
    $data = new sql($['nom_table']);

    if(isset($[
'edit'])){
            if(isset($[
'id']))    $ruch $data->edit($['id']);
            else                     
$ruch $data->add();
    }
    else {
        
$condition ="";
        
$ruch $data->inspect($condition "www.monsite.fr/?page=admin&" );
    }    
    
    foreach (
$ruch as $casque => $borderline
    {
    print 
$borderline ;
    } 

on peut alors facilement modifier la boucle d'affichage si un des champs de saisie automatique ne convient finalement pas à vos besoin

Code PHP :
if($data->table=="joueur" and $casque=="password")
        {
            print 
"<tr><td class='".$test->fieldError($casque,"fieldreq")."' >".$casque."</td><td>";
            print 
"<input readonly disabled name='".$casque."' value='".$data->password."' />"//_r($val);
            
print "</td></tr>";
        }
        else    print 
$borderline 

si vous avez des critiques ou des conseils pour ameliorer ce code( peut-etre au niveau securité, ou autre ...) je suis pret à tout entendre...
Ne m'en veux pas mais c'est... illisible !
Je n'ai même pas eu envie de le lire le code et pourtant j'adore cela le code mais alors là c'est vraiment pas possible, dans la bataille j'ai failli perdre 1 oeil et trois dents :(

Conventionne ton codage parce que celui qui doit passer après toi, bonjour ce qu'il doit vivre.
Et peut-être que tu pourrais proposer ton fichier complet (genre tu utilises le système de Upload de Jeuweb.net 34)

Kéké
(03-09-2009 11:37 AM)z3d a écrit : [ -> ]Ne m'en veux pas mais c'est... illisible !
Je n'ai même pas eu envie de le lire le code et pourtant j'adore cela le code mais alors là c'est vraiment pas possible, dans la bataille j'ai failli perdre 1 oeil et trois dents :(

Conventionne ton codage parce que celui qui doit passer après toi, bonjour ce qu'il doit vivre.

t'as raison, quand je l'ai posté, il etait 3 heures du mat, j'étais à la masse... 56

ya pas mal de trucs inutile, de chose pas clairs et c'est trop tassé...

je corrige ça rapidement et on en reparle

ok ?
Je croyais avoir répondu mais apparemment pas!

Donc dans cette réponse je disais que je trouvais que la sémantique de ta classe n'était pas génial.

En effet rien que le nom de la classe, "sql", laisse entendre un genre de classe d'abstraction sql qui permet de manier la bdd.
Ici c'est pas le cas c'est une classe qui créer des objets table auquel sont lié des méthodes d'édition graphique et d'édition de la bdd.

D'ailleurs je trouve que tu aurais du éviter de mélanger ces 2 type de méthode bien distinct, puisque l'un concerne l'affichage et l'autre l'accés au donnée.

Ensuite je te conseille d'utiliser des commentaire de documentation automatique.
Ça permet notamment d'éviter de devoir commenter chaque méthode quand tu poste un message...
(03-09-2009 02:51 PM)Zamentur a écrit : [ -> ]Donc dans cette réponse je disais que je trouvais que la sémantique de ta classe n'était pas génial.

En effet rien que le nom de la classe, "sql", laisse entendre un genre de classe d'abstraction sql qui permet de manier la bdd.
Ici c'est pas le cas c'est une classe qui créer des objets table auquel sont lié des méthodes d'édition graphique et d'édition de la bdd.

25 data.class 13 adjugé et vendu

Citation :Ensuite je te conseille d'utiliser des commentaire de documentation automatique.
Ça permet notamment d'éviter de devoir commenter chaque méthode quand tu poste un message...

je travaille avec NotePad++ je sais pas si j'ai ça...
en tout cas, voici une deuxieme version qui tiens compte de la plupart des remarques reçues...

Code PHP :
<?php

class data
{
    var 
$mysql ;
    var 
$db ;
    var 
$table;
    var 
$champs 
    
/*
    * le constructeur avec en param les valeurs de config...
    */
    
public function __construct($bdd$host$username$password)
    {
        
$this->mysql mysql_connect($host$username$password);
        
$this->db mysql_select_db($bdd) ;
    }
    
/**
     * le desctructeur ferme la connecion à la base de donnée
    **/
    
public function __destruct() 
    {
        
mysql_close($this->mysql);
    }
    
    
    
/**
    * la method ListEnum genere pour les champs de type ENUM un boite dse selection avec les valeurs reponses enregistrées...
    **/
    
function listEnum($nom_enum $selected)
    {
    
        
$donnees =array();
        
$requete mysql_query("show columns from ".$this->table." like '$nom_enum' ") or die("show columns from ".$this->table." like '$nom_enum' ".mysql_error());

        while(
$donnees mysql_fetch_array($requete))
        {
            if(
preg_match('!enum(.+)!'$donnees['Type']))
            {
                
$enum preg_replace ('!^enum\((.+)\)$!''$1'$donnees['Type']);

                
$enum str_replace ("'"""$enum);
                
$enum explode (','$enum);
                
$select .= '<select name="'$nom_enum.'">';
                foreach (
$enum as $valeur){
                    
                    if(
$selected==$valeur$select .= ' <option selected value="' $valeur '">' $valeur '</option>';
                    else 
$select .= ' <option value="' $valeur '">' $valeur '</option>';
                }
                
$select .= '</select>';
            }
        }
        
        return 
$select;
    
    }
    
    function 
table($table )
    {
        
$this->table $table ;
        
        
$sql ="describe ".$this->table." ;" ;
        
$infos mysql_query($sql)or die( $sql."\n<br />\n impossible d'executer la reqete : \n<br />\n ".mysql_error() ) ;
        while(
$donnees mysql_fetch_array($infos))
            
$tab_donnees[] = $donnees;
            
        foreach(
$tab_donnees as $data => $club)
        {            
            
$titre $club["Field"];
            
$value $club["Default"];
            
            
$this->champs->$titre $value;
        }
    }
    
/**
    * la methode get permet de recuperer l'objet specifique sur lequel on veut travailler...
    **/
    
public function get($id $field="")
    {
        
$donnees = array();
        
        if(
$field==""$field "id";
        
        
$this->$field $id;
        
        
$sql ="SELECT * FROM `".$this->table."` WHERE $field='$id'" ;
        
        
//print "<p>$sql</p>";
        
        
$infos mysql_query($sql)or die( $sql."\n<br />\n impossible d'executer la reqete : \n<br />\n ".mysql_error() ) ;
        
$donnees mysql_fetch_array($infos);
        
        if(!empty(
$donnees)) 
        {
            foreach(
$donnees as $name => $value)
            {    
                if(!
is_numeric($name)) $this->champs->$name $value ;
            }
            return 
true;
        }
        else return 
false ;        
    }
    
    public function 
insert()
    {            
        foreach (
$this->champs as $name => $value
        {
            if(
$name!="id" )
            {
                
$into .= ",`$name`" ;
                
$values .= ",'$value'";
            }
        }
                
        
$into ltrim($into,",");
        
$values ltrim($values,",");
        
//on supprime les virgules en trop...
        
$sql "insert into ".$this->table." ($into) values ($values)";
        
$infos mysql_query($sql)or die( $sql."\n<br />\n impossible d'executer la reqete : \n<br />\n ".mysql_error() ) ;
        print 
"<p>$sql</p>";
        return 
mysql_insert_id();//LAST_INSERT_ID() ; 
    
}
    
    public function 
update()
    {
        foreach (
$this->champs as $name => $value
        {
            if( 
$name!="id")$set .= ",`$name` = '$value'" ;
        }
        
$set ltrim($set",");
        
//on supprime les virgules en trop...
        
$sql ="update `".$this->table."` set $set  where `id` = '".$this->id."' ";
        
$infos mysql_query($sql)or die( $sql."\n<br />\n impossible d'executer la reqete : \n<br />\n ".mysql_error() ) ;    
                
        return 
$this->id;
    }
    
/**
    * on doit aussi pouvoir effacer
    **/
    
public function delete($id="")
    {
        if(
$id=="")$id $this->id ;
        
        
$sql ="delete from `".$this->table."` where `id` = '".$id."' ";
        
$infos mysql_query($sql)or die( $sql."\n<br />\n impossible d'executer la reqete : \n<br />\n ".mysql_error() ) ;    
    }
    
/**
    * la methode select ne porte pas sur un enregistrement mais sur un ou plusieurs. 
    * vous fixer la condition, comme une requete normale et on vous retourne les enregistrement sous un array.
    **/
    
public function select($where="" $order '')
    {
        
$donnees = array();
        
$result = array();
        
        if(
$where != '')
            
$where ' WHERE '.$where;
            
        if(
$order != '')
            
$order ' ORDER BY '.$order;
        
        
$sql ="SELECT * FROM `".$this->table."` $where  $order " ;
        
        
//print "<p>$sql</p>";
        
        
$infos mysql_query($sql)or die( $sql."\n<br />\n impossible d'executer la reqete : \n<br />\n ".mysql_error() ) ;
        while(
$donnees mysql_fetch_array($infos))
        {
            
//is_numeric
            
$result[] = $donnees ;
        }
        return 
$result ;        
    }
    
/**
    *getChamps permet de controler l'existence d'un champs.
    **/
    
public function getChamps($champs)
    {
        
$retour false;
        foreach( 
$this->champs as $field => $val
        {
            if(
$field == $champs $retour true;
        }
        return 
$retour ;
    }
    
/**
    * set permet de modifier sa valeur via l'objet si vous ne preferez pas le faire en dur dans le code.
    **/
    
public function set($champs$value)
    {
        
$this->champs->$champs $value ;
    }
}


class 
DataEdit extends data
{
    var 
$table;
    var 
$champs 
    
    function 
DataEdit($bdd$host$username$password $table )
    {
        
parent::__construct($bdd$host$username$password);
                
$this->table($table );
    }
    
/****
     * la fonction add retourne un tableau d'enregistrement. avec des champs de saisie formés selon le type des données.
     * en param, le tableau $_POST pour l'insertion des valeur
     ****/
    
public function add$post=null )
    {
        if(isset(
$post['add']))
        {
            foreach(
$post as $champs => $val )
            {
                if(
getChamps($champs))$this->set($champs$val);
            }
            
$this->insert();
        }
        
        
$array_edit = array();
        
        
$sql ="describe ".$this->table." ;" ;
        
$infos mysql_query($sql)or die( $sql."\n<br />\n impossible d'executer la reqete : \n<br />\n ".mysql_error() ) ;
        
        
$array_edit["form_init"] = '<form method="post" >'
        
$array_edit["table_init"] = '<table>'
        
$array_edit["caption"] = '<caption><h1>'.$this->table.'</h1></caption>'
        
        while(
$donnees mysql_fetch_array($infos))
        {
            if(
eregi('varchar',$donnees["Type"]))     
                
$array_edit[$donnees["Field"]] = '<tr>
                                                    <td>'
.$donnees["Field"].'</td>
                                                    <td><input type="text" name="'
.$donnees["Field"].'" /></td>
                                                    </tr>'

                                                    
            if(
eregi('int',$donnees["Type"])) 
            {
                if(
$donnees["Field"]!="id")            
                    
$array_edit[$donnees["Field"]] = '<tr>
                                                        <td>'
.$donnees["Field"].'</td>
                                                        <td><input type="text" size="2" name="'
.$donnees["Field"].'" /></td>
                                                        </tr>'

            }
            
            if(
eregi('decimal',$donnees["Type"])) 
                
$array_edit[$donnees["Field"]] = '<tr>
                                                    <td>'
.$donnees["Field"].'</td>
                                                    <td><input type="text" size="2" name="'
.$donnees["Field"].'" /></td>
                                                    </tr>'

                                                    
            if(
eregi('text',$donnees["Type"]))      
                
$array_edit[$donnees["Field"]] = '<tr>
                                                    <td>'
.$donnees["Field"].'</td>
                                                    <td><textarea name="'
.$donnees["Field"].'"></textarea></td>
                                                    </tr>'
;
                                                    
            if(
eregi('enum',$donnees["Type"]))      
                
$array_edit[$donnees["Field"]] = '<tr>
                                                    <td>'
.$donnees["Field"].'</td>
                                                    <td>'
.$this->listEnum$donnees['Field'] ,  '' ).'</td>
                                                    </tr>'
;
        }
        
        
$array_edit["submit"] = '<tr><td></td><td><input type="submit" name="add" /></td></tr>'

        
$array_edit["table_close"] = '</table>';
        
$array_edit["form_close"] = '</form>'
        
        return 
$array_edit;
    }

    
/**
     * la fonction edit retourne un tableau d'edition d'un enregistrement. avec des champs de saisie formés selon le type des données.
     * en param, le tableau $_POST pour la modification des valeur
    **/
       
public function edit($id$post=null )
    {
        if(isset(
$post['mod']))
        {
            foreach(
$post as $champs => $val )
            {
                if(
getChamps($champs))$this->set($champs$val);
            }
            
$this->update();
        }
        
        
$array_edit = array();
        
        
$this->get($id);
        
$sql ="describe ".$this->table." ;" ;
        
$infos mysql_query($sql)or die( $sql."\n<br />\n impossible d'executer la reqete : \n<br />\n ".mysql_error() ) ;
        
        
$array_edit["form_init"] = '<form method="post" >'
        
$array_edit["table_init"] = '<table>'
        
$array_edit["caption"] = '<caption><h1>'.$this->table.'</h1></caption>'
        
        while(
$donnees mysql_fetch_array($infos))
        {
            if(
eregi('varchar',$donnees["Type"]))     
                
$array_edit[$donnees["Field"]] = '<tr>
                                                    <td>'
.$donnees["Field"].'</td>
                                                    <td><input type="text" name="'
.$donnees["Field"].'" value="'.$this->champs->$donnees["Field"].'" /></td>
                                                    </tr>'

                                                    
            if(
eregi('int',$donnees["Type"]))          
                
$array_edit[$donnees["Field"]] = '<tr>
                                                    <td>'
.$donnees["Field"].'</td>
                                                    <td><input type="text" size="2" name="'
.$donnees["Field"].'" value="'.$this->champs->$donnees["Field"].'" /></td>
                                                    </tr>'

                                                    
            if(
eregi('text',$donnees["Type"]))      
                
$array_edit[$donnees["Field"]] = '<tr>
                                                    <td>'
.$donnees["Field"].'</td><td><textarea name="'.$donnees["Field"].'">'.$this->champs->$donnees["Field"].'</textarea></td>
                                                    </tr>'
;
                                                    
            if(
eregi('enum',$donnees["Type"]))      
                
$array_edit[$donnees["Field"]] = '<tr>
                                                    <td>'
.$donnees["Field"].'</td>
                                                    <td>'
.$this->listEnum$donnees['Field'] ,  $this->champs->$donnees["Field"] ).'</td>
                                                    </tr>'
;
            
            if(
eregi('decimal',$donnees["Type"]))      
                
$array_edit[$donnees["Field"]] = '<tr>
                                                    <td>'
.$donnees["Field"].'</td>
                                                    <td><input type="text" size="2" name="'
.$donnees["Field"].'" value="'.$this->champs->$donnees["Field"].'" /></td>
                                                    </tr>'

        }
        
        
$array_edit["submit"] = '<tr><td></td><td><input type="submit" name="mod" /></td></tr>'

        
$array_edit["table_close"] = '</table>';
        
$array_edit["form_close"] = '</form>'
        
        return 
$array_edit;
    }

    
/**
     * la fonction inspect fourni un tableau des enregistrement avec un lien vers une page d'ajout/edition ou un mode de suppression
    **/
        
function inspect($condition="" $url)
    {
        
$table $this->select($condition);
        
        
$array_edit["table_init"] = '<table>'
        
$array_edit["caption"] = '<caption><h1>'.$this->table.'</h1></caption>'
        
        
$array_edit["th"] .= "<tr>";
        foreach (
$this->champs as $name => $value$array_edit["th"] .= "<th>$name</th>";
        
$array_edit["th"] .= "</tr>";
        
        foreach( 
$table as $ligne )
        {
            
$array_edit[$ligne["id"]] .= "<tr>";
            
            foreach ( 
$ligne as $i => $piks )
            {
                
// on limite la taille des enregistrements et on y supprime les balise HTML...
                
$piks ereg_replace("<[^>]*>"""trim(strip_tags($piks)) ) ; 
                if(
strlen($piks)>=50$piks substr($piks050)."...";
                
                if(!
is_numeric($i)) // on enleve les doublons en clé numerique
                    
$array_edit[$ligne["id"]] .= "<td>".$piks."</td>";
            }
            
            
$array_edit[$ligne["id"]] .= "<td>
                                            <a href='"
.$url."&ordre=edit&table=".$this->table."&id=".$ligne["id"]."' >
                                                <img src='"
.$url."/images/admin/data/edit.jpg' alt='".$ligne["id"]."' />
                                            </a>
                                        </td>"
;
                                        
            
$array_edit[$ligne["id"]] .= "<td>
                                            <a href='"
.$url."&ordre=delete&table=".$this->table."&id=".$ligne["id"]."' >
                                                <img src='"
.$url."/images/admin/data/delete.gif' alt='".$ligne["id"]."' />
                                            </a>
                                        </td>"
;
            
            
$array_edit[$ligne["id"]] .="</tr>";
        }
        
$array_edit["nouveau"] = "<tr><td>nouveau</td><td><a href='".$url."&ordre=edit&table=".$this->table."' ><img src='".$url."/images/admin/data/ajout.jpg' alt='".$ligne["id"]."' /></a></td></tr>"
        
$array_edit["table_close"] = '</table>';
        
        return 
$array_edit;
    }
}
?>
URLs de référence