Next Previous Contents

2. Exemple d'utilisation

2.1 Exemple d'utilisation de la méthode iter.

Vous avez generer a partir de la base vos classes php, et vous voulez afficher l'ensemble des elements de la table ( la classe toto par exemple). Voici une methode vous permettant de vous simplifier la vie: function affiche($obj) { $obj->showraw(); } $toto= new toto(); $toto->iter(affiche,"select * from toto ");

2.2 Exemple de redifinition de formulaire.

Le formulaire genere authomatiquement n'est pas adapte a votre besoin , alors il vous suffit de creer une nouvelle class heritant de la classe vous procurant le formulaire que vous voulez remplacer , et de surcharger la methode showform suivant vous desire.

2.3 Obtention des objets correspondant a un index dans une table.

Lors de la generation des classes, on scan les attribut de chaque element de la table et si un element est un index secondaire alors , l'utilisateur doit renseigner a quelle table cet index correspond. Par exemple nous avons une table toto avec un index secondaire sur la table titi, apres la generation toto possedera une methode gettiti() qui retournera les champs corresopant aux elements de la table titi correpondante a l'index secondaire de toto. Pour etre plus precise, si toto a champs champs idxtiti=10 ( idxtiti index secondaire vers la table titi) alors gettiti retournera l'enregistrement de la titi ayant index 10. ( en imaginant que les index soit des entiers ).

2.4 Recherche avec l'utilisation de iter.

On peut realiser grace a la base de donnée des recherches performantes dans les donnees de la base.Voici un exemple vous permettant de realiser un script de recherche interressant. On imagine que les items de recherche sont contenu dans une variable $name. On la transforme en tableau d'element ( le separateur etant l'espace ). Puis on construit la requete , et on l'execute avec iter, il y a un petit probleme cependant avec ce script lorsque la recherche donne un element vide.


                 $tm=new matable();
                $therequet="select * from matable where ";
                $arrayname=split(" ",$name);
                $interlike= " ";
                while (list(, $str2search) = each ($arrayname)) {
                        $therequet.=$interlike." nom like '%$str2search%' ";
                        $interlike=" and ";
                }

                echo "<h2>The result of your search on : <i> $name<br>";
                $tm->iter(showmansearch,$therequet);

2.5 Utilisation du _nametable pour changer la base de donnée.

Le variable _nametable définit la table qui détiens les données de la classe, si vous voulez par exemple réaliser une table contenant des données intermédiaires en vue d'une administration ou vérification, cela vous permettra de tres facilement les gérer.

Pour ce faire , créez deux tables identique ayant deux noms différents:


CREATE TABLE foo (
  idx int(11) DEFAULT '0' NOT NULL auto_increment PRIMARY KEY,
  foo varchar(50) DEFAULT '' NOT NULL,
 _datemodif datetime ,
  _datecreation datetime
);
CREATE TABLE tmpfoo (
  idx int(11) DEFAULT '0' NOT NULL auto_increment PRIMARY KEY,
  foo varchar(50) DEFAULT '' NOT NULL,
 _datemodif datetime ,
  _datecreation datetime
);

Créez la classe tmpfoo et la classe foo, puis voici un exemple de code permettant d'administrer la chose.


<?
$path=".";
include $path."/class/tmpfoo.php3";

$tf=new tmpfoo(3);
$tf->_nametable="foo";
$togetlastidx=new foo();
$tf->idx=$togetlast->last();
$tf->idx=$tf->idx+1;
$tf=addtobd();
?>

Nous prenons l'enregistrement ayant comme cle primaire le numero 3 , puis nous changons le nom de la table en foo, apres on recherchons a affecter une cle primaire pour la table foo.

Il y a une autre maniere de la faire grace a copyobj qui permet de faire une copie entre deux objets séparés.


Next Previous Contents