Introduction
Humm ... je vous vois très sceptique sur le titre de ce nouveau tuto ! Mais vous allez voir que c'est vrai ... hihihi ...
Par contre ce que je n'ai pas dit, c'est que nous allons créer une table html à partir des données d'une table mysql !
Un tableau simple
On va créer un contrôleur test_table ... et mettre le code suivant
class test_table extends Controller{
public function test(){
$this->load->database();
$this->load->library('table');
$query = 'SELECT * FROM [TABLE] LIMIT 0,10';
echo $this->table->generate($query);
}
}
Vous affichez le contenu d'une table mysql. Vous pouvez choisir les colonnes que vous souhaitez afficher en remplaçant l'étoile par les noms des colonnes, comme on le fait pour une requête mysql...
Modifier l'intitulé de la colonne
Parfois l'intitulé ne correspond pas à ce que vous souhaitez afficher ou même pire, il n'a pas forcément de sens explicite. C'est la raison pour laquelle, il serait préférable de changer l'intitulé.
Pour cela, rien de plus simple, à côté de chaque nom de colonne, on rajoute "AS [nouvel intitulé]" dans la requête...
Par exemple, si on a comme requête:
SELECT nom,prenom,add,tel FROM user LIMIT 0,10
on mettra:
SELECT
nom AS 'Nom de famille',
prenom AS 'Prénom',
add as 'Adresse de domicile',
tel AS 'Téléphone fixe de la maison'
FROM user LIMIT 0,10
Voila, vous suivez ... ?
Nouvelle mise en page...
Plus compliqué, on va faire un tableau à 2 colonnes. La première colonne concernera les informations de l'utilisateur(nom, prénom, adresse), et le second son statut (connecté, non connecté)...
tout en utilisant un template spécifique ...
alors ... ?
Bon, tout d'abord, on va faire ce que nous savons faire ... c'est à dire la deuxième colonne:on aura donc :
SELECT [UN TRUC] AS Utilisateur,
statut AS 'Statut de l\'utilisateur'
FROM user LIMIT 0,10
Maintenant, il faut remplacer [UN TRUC] parle code que l'on souhaite ajouter...
le template sera de la forme suivante :
<b>Nom</b> : [nom]<br />
<b>Prénom</b> : [prenom]<br />
<b>Adresse</b> : [adresse]
En fait, on utilisera la fonction CONCAT de mysql ! de la manière suivante :
CONCAT('<b>Nom</b> : ',nom,
'<br/><b>Prénom</b> : ',prenom,
'<br /><b>Adresse</b> : ',adresse)
on a donc au final la requête suivante :
SELECT CONCAT(
'<b>Nom</b> : ',nom,
'<br/><b>Prénom</b> : ',prenom,
'<br /><b>Adresse</b> : ',adresse) AS Utilisateur,
statut AS 'Statut de l\'utilisateur'
FROM user LIMIT 0,10
Conclusion
Voilà, nous pouvons faire des tableaux plus agréable à voir et surtout nous avons des possibilités importantes de présentation !
Je vous revois à la documentation de codeIgniter pour customiser encore plus vos tableaux ...
Mais vous pouvez déjà voir que l'on peut créer des tables avec du code concis ...