Note :
Le module LIST vous permet d'exécuter des requêtes SQL pour la base de données MySQL.
Note: pour utiliser cette fonction, veuillez
configurer vos accès SQL dans le fichier
templeet/config.php
.
Il offre les fonctions suivantes:
-
list
: lancement d'une requête sur une base de données, et extraction du résultat
fld : renvoie un champs lors d'une extraction sur une base de données
gfld : renvoie la valeur d'une variable interne de la fonction ~list - listtotaltime : renvoie le temps que templeet a passé dans la base de données
- list_lastid : renvoie l'identifiant généré par la dernière requête INSERT
list
La fonction ~list permet d'effectuer une extraction sur une base de données. Ensuite, chaque champ objet d'une recherche est nommé par la fonction ~fld('nom_du_champ') pour le reste de la fonction.
Avec les séquences LF, LM, LR, LL, etc, on peut effectuer un traitement (le plus souvent un affichage) différent selon qu'on affiche la première ligne, les suivantes ou la dernière. Ceci peut s'avérer utile pour générer un tableau.
La fonction ~list prend comme arguments le nom indiqué dans
templeet/config.php
pour la base de donnée, la requête
SQL à exécuter, puis un nombre d'arguments couplés par deux dont le
premier argument du couple peut être soit: LM,
LF, LL, LN,
L1, LR, LD ou
LE.
Appelons A le premier argument du couple, B le deuxième argument du couple.
- Si A est égal à LF, B est évalué lors du premier traitement.
- Si A est égal à LM, B est évalué pour chaque traitement, y compris le premier mais il sera alors évalué après celui de LF, et avant celui de LL.
- Si A est égal à LR, B est évalué lors du premier traitement, comme LF, mais LM n'est pas évalué pour ce même traitement, et on passe directement au suivant.
- Si A est égal à LL, B est évalué pour le dernier traitement, après celui de LM.
- Si A est égal à LN, B est évalué pour le dernier traitement, comme LL, mais LM n'est pas évalué pour ce même traitement, et ensuite on s'arrête.
- Si A est égal à LD, B est évalué en cas de non traitement d'informations.
- Si A est égal à L1, B est évalué lors du traitement d'une seule information.
- Si A est égal à LE, B est évalué en cas d'erreur lors du traitement. Ceci comprend aussi les erreurs de connexion à la bases de données.
fld
La fonction ~fld prend un seul argument, celui ci étant le nom de la colonne SQL que l'on souhaite récupérer.
Exemples d'utilisation des commandes ~list, et ~fld :
L'exemple suivant affiche le champ section de chaque enregistrement de la table sections :
~list("database",'SELECT section FROM sections',"LM",~fld("section"))
L'exemple suivant met en oeuvre les paramètres "LF", "LM", "LL" de la fonction ~list :
~list("database",' SELECT nom, prenom FROM utilisateurs ORDER BY nom, prenom ', "LF", '<table border="1"> <thead> <tr> <th>Nom</th> <th>Prénom</th> </tr> </thead> <tbody> ', "LM", ' <tr> <td>~fld("nom")</td> <td>~fld("prenom")</td> </tr> ', "LL", ' </tbody> </table> ' )
Exemple de résultat du code précédent :
Nom | Prénom |
---|---|
DUPOND | Pierre |
MARTIN | Catherine |
DUMONT | Sébastien |
NOTE : il est possible d'imbriquer la fonction ~list dans une autre fonction ~list. Cependant, dans la fonction ~list qui est contenue, il n'est pas possible d'accéder aux champs de la fonction ~list contenante.
Exemple :~list("database", <--- fonction ~list (1) ' SELECT section FROM sections ', "LM", ' ~list("database", <--- fonction ~list (2) ' SELECT nom, prenom FROM utilisateurs WHERE section="~fld("section")" <--- accès au champ section de la requête effectué par la fonction ~list (1) ', "LF",' <table> ' "LM",' <tr> <td>~fld("nom")</td> <--- accès au champ nom de la requête effectué par la fonction ~list (2) <td>~fld("prenom")</td> <--- accès au champ prenom de la requête effectué par la fonction ~list (2) <td>~fld("section")</td> <--- accès au champ prenom de la requête effectué par la fonction ~list (2) </tr> ' ) ', "LL",' </table> ' )
gfld
Cette fonction permet de récupérer la valeur de variable interne Templeet.
- ~gfld("numrows") : permet d'avoir le nombre de lignes renvoyées par la requête.
- ~gfld("counter") : permet d'avoir le numéro de ligne courante (la première ligne a pour valeur 1).
- ~gfld("error") : permet d'avoir le message d'erreur.
- ~gfld("executedtime") : permet de récupérer le temps passé à exécuter la requête.
Exemple d'utilisation de la fonction ~gfld :
~list("database",' SELECT nom, prenom FROM utilisateurs ORDER BY nom, prenom ', "LF", '<p>Nombre d\'enregistrement : ~gfld("numrows")</p> <table border="1"> <thead> <tr> <th></th> <th>Nom</th> <th>Prénom</th> </tr> </thead> <tbody> ', "LM", ' <tr> <td>~gfld("counter")</td> <td>~fld("nom")</td> <td>~fld("prenom")</td> </tr> ', "LL", ' </tbody> </table> ' )
Exemple de résultat du code précédent :
Nombre d'enregistrement : 3
Nom | Prénom | |
---|---|---|
1 | DUPOND | Pierre |
2 | MARTIN | Catherine |
3 | DUMONT | Sébastien |
listtotaltime
Cette fonction, qui ne prend pas d'argument, indique le temps que Templeet a passé dans la base de données.
Exemple d'utilisation de la fonction ~listtotaltime :
Templeet a passé ~listtotaltime()s en requêtes SQL
list_lastid
La fonction ~list_lastid renvoie l'identifiant généré par la dernière requête INSERT. Cet identifiant correspond à un champ qui est automatiquement incrémenté.
~list("foo", 'INSERT INTO table (field) VALUES ("bar")') Index du dernier enregistrement inséré : ~list_lastid("foo")