Bien le bonjour tout le monde,
J'ai un petit soucis avec un find('all').
Voici le petit code :
$listeAchatBoxClient = $this->Transaction->find('all',array('conditions'=>array('user_id'=>$user_id)));
$listeboxs = $this->Listeboxs->find('all',array('conditions'=>array('id'=>$listeAchatBoxClient[0]'Transaction']'id_box'])));
La première ligne, on récupère toutes les transacations du client via l'id de celui-ci (user_id > Id du client connecté).
Puis dans la seconde ligne, je lance une requête qui doit récupérer toutes les informations des boxs de par le biais de la liste des transactions récupérées juste au dessus.
Mon tableau de transaction est correct, lorsque j'ai 2 transactions pour mon client, j'ai bien "deux lignes" etc.
Mais dans le tableau "$listeboxs" je n'ai toujours qu'une seule ligne. Vous allez me répondre "Oh bah oui c'est normal, tu check l'index 0 du tableau", et je dirais ouiiii, mais justement je vois pas trop comment faire pour avoir mes deux lignes d'infos de box (comme pour Transaction) :'(
A vot' bon coeur msieur dames !
Plop, bon j'ai pas adapté ton idée à mon problème, enfin j'ai essayé mais sans succès, en revanche j'ai trouvé une idée !
Déjà j'ai fait un lien entre mes deux tables et puis j'ai fait cette requête à la ****** :
$listeboxs = $this->Listeboxs->query('SELECT li.*
FROM listeboxs li, transactions t
WHERE li.id = t.id_box
AND t.user_id ='.$user_id);
Ensuite dans la vue j'ai juste remplacé 'listeboxs'] par 'li'] et voilà j'ai bien tous mes résultats du tableau ^^ Je pense que ça doit être bien moche, mais à défaut de trouver autre chose de plus correct pour l'instant... ^^
En tous cas, merci à toi pour le coup de papatte :)
salut, il y a sûrement mieux mais je n'ai pas travaillé sur CakePHP depuis longtemps. Une boucle forEach() ne suffirait pas ?
Ah oui pardon j'ai pas mis la vue ^^
Je fais bien une boucle Foreach dans ma vue pour la partie affichage (Code ci-dessous)
<?php foreach ($listeboxs as $box): ?>
<a href="../users/verify/<?php echo $box'Listeboxs']'id'];?>">
<div class="fond-tutos">
<img class="tuto" src="<?php echo $box'Listeboxs']'url_img'];?>"/>
<h2><?php echo $box'Listeboxs']'title'];?></h2>
<p><?php echo $box'Listeboxs']'descr'];?></p>
</div>
</a>
<?php endforeach ?>
Après, je sais pas si c'est vraiment dû à CakePhp ou ma "fonction php" qui déconne -_-
Oui c'est cette partie là, en gros j'aimerai joindre les deux tables, sur le champ id_box sans avoir besoin de spécifier l'index du tableau pour que cela se fasse sur toutes les lignes concernées et pas qu'un seul résultat
Un truc qui fonctionnerait c'est ça :
$listeAchatBoxClient = $this->Transaction->find('all',array('conditions'=>array('user_id'=>$user_id)));
foreach($listeAchatBoxClient as $k => $v) {
$listeboxs$k] = $this->Listeboxs->find('all',array('conditions'=>array('id'=>$listeAchatBoxClient$k]'Transaction']'id_box'])));
}
Après je trouve ça un peu crassou, il ya sûrement moyen de faire plus propre. Mais au moins ça dépanne le temps de trouver une meilleure solution.