Le contenu extrait des sélections réalisées avec des boucles SPIP est affiché grâce à des balises. Automatiquement, lorsqu’une table possède un champ SQL « x », SPIP pourra afficher son contenu en écrivant
#X
.
<BOUCLEx(TABLES)>
#X - #NOM_DU_CHAMP_SQL - #CHAMP_INEXISTANT<br />
</BOUCLEx>
SPIP ne créera pas de requête SQL de sélection totale (
SELECT * ...
) pour récupérer les informations demandées, mais bien, à chaque fois, des sélections spécifiques : ici, ce serait
SELECT x, nom_du_champ_sql FROM spip_tables
.
Lorsqu’un champ n’existe pas dans la table SQL, comme ici « champ_inexistant », SPIP ne le demande pas dans la requête, mais essaie alors de le récupérer dans une boucle parente, si il y en a. Si aucune boucle parente ne possède un tel champ, SPIP le cherche alors dans l’environnement, comme si l’on écrivait
#ENV{champ_inexistant}
.
Exemple
Imaginons une table SQL "chats" contenant 5 colonnes « id_chat », « race », « nom », « age », « couleur ». On pourra lister son contenu de la sorte :
<B_chats>
<table>
<tr>
<th>Nom</th><th>Age</th><th>Race</th>
</tr>
<BOUCLE_chats(CHATS){par nom}>
<tr>
<td>#NOM</td><td>#AGE</td><td>#RACE</td>
</tr>
</BOUCLE_chats>
</table>
</B_chats>
Automatiquement, SPIP, en analysant le squelette, comprendra qu’il doit récupérer les champs
nom
,
age
et
race
dans la table SQL
chats
. Cependant, il n’ira pas récupérer les champs dont il n’a pas besoin (ici
id_chat
et
couleur
), ce qui évite donc de surcharger le serveur de base de données en demandant des champs inutiles.