Bonjour je me sers du tuto créer un site web en php pour faire mon site je suis bloqué sur une chose...
J'ai ceci pour lister mes utilisateurs :
$data'users'] = $this->User->find(array(
'fields' => 'id,email,civility,name,first_name,date_of_birth,date_of_registration,role',
'order' => 'date_of_registration DESC',
'limit' => ($perPage*($this->request->page-1)).','.$perPage
));
Chaque utilisateur peut posséder des listes (table listes)
je voudrais avoir dans mon User le nombre de listes pour chacun mais je ne sais pas faire....
Puis je le faire directement dans le code ci dessus ou dois je créer une fonction nb_listes($id_user) ?
si oui ou dois je la mettre et comment l'appeler ?
Merci pour votre aide
Si tu utilises le tutoriel fait pour faire un MVC soi-même, le 'order' n'a pas été développé à moins que tu l'aies fait ^^ .
Des listes de quoi ? Si tu veux connaître le nombre de liste pour chaque utilisateur le mieux c'est d'utiliser la fonction findCount() crée dans le tutoriel pour compter le nombre de résultats, tu mets une conditions du genre toutes les listes et voilà ^^ .
Oui mais dans ma vues je fais un foreach de mes users pour afficher les infos des users et je voudrais ajouter leur nombre de liste et je c pas comment faire
Merci pour votre aide
Bah leurs nombres de liste oui, mais des listes de quoi ?
Sinon, tu peut toujours créer une fonction nb_list($id_user); dans la quels tu aurais quelques choses comme ceci :
Coté class :
class MaClass
{
private $_db;
private $_list;
public function __construct(array $donnees)
{
$this->hydrate($donnees);
}
public function hydrate(array $donnees)
{
foreach($donnees as $key => $value)
{
$method = 'set'.ucfirst($key);
if(method_exist($this, $method))
{
$this->$method($value);
}
}
}
public function list()
{
return $this->_list;
}
public function setList($list)
{
// On défini $list.
$this->_list = $list;
}
public function nbList($id_user)
{
// On récupère le count total des listes depuis la DB (Les noms de tables sont à changer).
$q = $this->_db->query('SELECT COUNT(id) FROM list WHERE id = '.$id_user);
$donnees = $q->fetch(PDO::FETCH_ASSOC);
// On retourne le résultat
return new nbList($donnees);
}
}
Coté affichage :
<?php
// On appel notre fonction nbList avec l'ID = 1 pour l'exemple
$db = new PDO(mysql:host=localhost;dbname=MaDB','MonUser','MonMdp');
$perso = new nbList('1') // Par exemple, je met un ID = 1.
// On défini $list pour faire un echo.
$list = $perso->list();
// On fait l'echo de $list.
echo $list;
?>
Voila, un truc de ce style devrais fonctionner ;) (C'est un exemple hein ?)
En espérant avoir aidez :)