Je pense que vous voulez utiliser pager_query et tablesort_sq l: il est spécialement conçu pour la création de tableaux de données avec des capacités de pagination et de tri (et les thèmes sont généralement très bien faits).
Exemple:
<?php
// The regular query without sorting or pagination parameters
$sql = 'SELECT cid, first_name, last_name, company, city FROM {clients}';
// Number of rows per page
$limit = 20;
// List of table columns ("field" is the matching database column from the sql query)
$header = array(
array('data' => t('Name'), 'field' => 'last_name', 'sort' => 'asc'),
array('data' => t('Company'), 'field' => 'company'),
array('data' => t('City'), 'field' => 'city')
);
// Calculates how to modify the SQL query according to the current pagination and sorting settings
// Then performs the database query
$tablesort = tablesort_sql($header);
$result = pager_query($sql . $tablesort, $limit);
$rows = array();
while ($client = db_fetch_object($result)) {
$rows[] = array(l($client->last_name.', '.$client->first_name, 'client/'.$client->cid), $client->company, $client->city);
}
// A message in case no results were found
if (!$rows) {
$rows[] = array(array('data' => t('No client accounts created yet.'), 'colspan' => 3));
}
// Then you can pass the data to the theme functions
$output .= theme('table', $header, $rows);
$output .= theme('pager', NULL, $limit, 0);
// And return the HTML output
print $output;
?>
(I ont ajouté des commentaires, mais la version originale de l'exemple vient de this page)
Sinon, peut-être vous n'avez pas besoin de faire un module tout Si vous essayez simplement de créer une page qui affiche une liste de données, vous pouvez utiliser le Views module.
Merci beaucoup pour les commentaires, super article. En ce moment, je suis vraiment aux prises avec la partie filtrage. Je voudrais reproduire quelque chose comme les filtres exposés des Vues, mais avec du code à la place. La raison en est que je suis un débutant avec un délai serré et n'ai toujours pas compris comment utiliser hook_views_data = ( –
Les vues peuvent être difficiles sur des délais serrés en effet: D – wildpeaks
note rapide par le chemin: assurez-vous de ne pas avoir un WHERE clause dans la requête SQL que vous utilisez pour la requête pager ou vous pouvez obtenir des résultats indésirables – wildpeaks