Lire facilement des données avec Acicrud

Tutoriel ACICRUD #2

Dans ce deuxième tutoriel sur l’utilisation de la librairie Acicrud nous allons voir comment lire des données depuis la base de données.

Comme expliqué dans les précédents billets, le principe d’Acicrud est d’ajouter une couche applicative objet dans les modèles afin de générer des objets fidèles au modèle de données représenté par la base de données.

Concrètement, Acicrud permet d’intéragir avec la base de données en  manipulant directement des objets PHP.

Prérequis

Nous supposerons utiliser le modèle exemple précédemment créé dans le turoriel #1.

Nous supposerons également que notre table SQL est bâtie sur le modèle de donnée suivant :

Exemple { idExemple, title, description, date }

Lecture d’une ligne en base de données

La lecture d’une ligne se fait à partir de son identifiant (clé primaire) ou à partir d’un tableau associatif représentant la clause WHERE à utiliser (attention read est volontairement prévu pour lire une et une seule entrée), la méthode read() retourne un objet fidèle à la ligne en base de données :

L’objet $o représente physiquement l’élément lu en base de données. Ses attributs portent les noms de champs et ses valeurs sont les données de la ligne.

Lecture de toutes les lignes d’une table en base de données

Il est très fréquent de devoir récupérer l’ensemble des données d’une table. Acicrud fournit une méthode pour cela s’appelant getAll().

Cette méthode prend trois paramètres optionnels qui sont $limit, $order et $where.

$limit permet d’effectuer un LIMIT SQL afin de limiter le nombre de lignes retournées par la requête, il suffit de passer un nombre.

$order est un tableau associatif qui permet de trier les données, par exemple pour trier par title ascendant, il faudra passer un tableau associatif :

array(‘title’ => ‘ASC’).

Il est également possible d’indiquer plusieurs tris : array(‘date’ => ‘DESC’, ‘title’ => ‘ASC’ ).

Le paramètre $where permet d’ajouter une clause WHERE personnalisée, il suffit de passer un tableau indexé de la même manière qu’avec la librairie Active Record de CodeIgniter.

La métode getAll() va retourner un tableau d’objets fidèles qui peuvent par exemple être facilement passés à une vue pour affichage.

Support and feedback are both available in English and in French.

Tutoriel suivant

» Insérer des données avec Acicrud

3 réflexions au sujet de « Lire facilement des données avec Acicrud »
  1. seb

    foreach($this->exemple->getAll(10, array(‘date’ => ‘DESC’) as $row)
    a remplacer avec
    foreach($this->exemple->getAll(10, array(‘date’ => ‘DESC’)) as $row)

  2. Florante

    Hi,

    can you show me on how to make a distinc query like

    select distinc name from zoo where animal=’monkey’

    thanks

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *