La fonction
sql_create_view()
crée une vue à partir d’une requête de sélection donnée. La vue pourra donc être utilisée par des boucles SPIP ou par de nouvelles requêtes de sélection.
Elle admet 4 paramètres :
-#
$nom
est le nom de la vue créée,
-#
$select_query
est la requête de sélection,
-#
$serveur
,
-#
$option
.
On peut l’utiliser couplée à la fonction
sql_get_select pour obtenir la sélection voulue :
$selection = sql_get_select('colonne', 'table');
sql_create_view('vue', $selection);
// utilisation
$result = sql_select('colonne', 'vue');
Note :
Lorsqu’une colonne de sélection utilise une notation
'nom.colonne'
, il faut impérativement déclarer un alias pour la colonne sinon certains portages (SQLite notamment) ne créent pas la vue attendue, par exemple
'nom.colonne AS colonne'
.
Exemple
Ce petit exemple montre le fonctionnement, en créant une table (bien inutile) à partir de 2 colonnes d’une rubrique :
$select = sql_get_select(array(
'r.titre AS t',
'r.id_rubrique AS id'
), array(
'spip_rubriques AS r'
));
// creer la vue
sql_create_view('spip_short_rub', $select);
// utiliser :
$titre = sql_getfetsel('t', 'spip_short_rub', 'id=8');
Dans un squelette, la vue pourrait aussi être utilisée :
<BOUCLE_vue(spip_short_rub) {id=8}>
<h3>#T</h3>
</BOUCLE_vue>