Exemple - Simple -- Récupération rapide de données depuis une table de base de données
Description
Lie une requête SQL
Pour récupérer les données que la grille de données affichera, vous pouvez
commencer par passer une requête SQL simple à la méthode
bind()
.
Exemple 57-1. Utilisation d'une requête SQL en tant que source de données <?php
require 'Structures/DataGrid.php';
// Instanciation de la grille de données
$datagrid =& new Structures_DataGrid();
// Mise en place de la connexion à la base de données
$options = array('dsn' => 'mysql://user:password@host/db_name');
// Lie une requête SQL basique en tant que source de données
$test = $datagrid->bind('SELECT * FROM my_table', $options);
// Affiche l'erreur de liage s'il y en a
if (PEAR::isError($test)) {
echo $test->getMessage();
}
// Affichage de la grille de données avec le rendu par défaut (Tableau HTML)
$test = $datagrid->render();
// Affiche l'erreur de rendu s'il y en a
if (PEAR::isError($test)) {
echo $test->getMessage();
}
?> |
|
Si vous êtes familier avec le langage SQL, vous trouverez certainement
plusieurs façons d'adapter l'exemple ci-dessous à vos besoins, en utilisant
des requêtes plus complexes.
Vous pouvez également paginer vos enregistrements avec la fonctionnalité
de pagination automatique, tel que montré ci-dessous. Cette fonctionnalité
ajoute de façon transparente la clause LIMIT à votre
requête SQL, fournissant des accès optimisés à la base de données.
Exemple 57-2. Pagination automatique <?php
require 'Structures/DataGrid.php';
// 10 enregistrements par page
$datagrid =& new Structures_DataGrid(10);
// Configuration de votre source de données
$options = array('dsn' => 'mysql://user:password@host/db_name');
$test = $datagrid->bind("SELECT * FROM my_table", $options);
if (PEAR::isError($test)) {
echo $test->getMessage();
}
// Affichage de la grille de données avec le rendu par défaut (Tableau HTML)
$test = $datagrid->render();
if (PEAR::isError($test)) {
echo $test->getMessage();
}
// Affichage des liens HTML pour la pagination
$test = $datagrid->render(DATAGRID_RENDER_PAGER);
if (PEAR::isError($test)) {
echo $test->getMessage();
}
?> |
|