sql_create_view

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 :

  1. $nom est le nom de la vue créée,
  2. $select_query est la requête de sélection,
  3. $serveur,
  4. $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>

Auteur Matthieu Marcillaud Publié le : Mis à jour : 15/05/10

Traductions : English, français