[Smarty] objet foreach: accès tableau associatif imbriqué
salut à tous
J'apprends l'utilisation de Smarty et me retrouve confronté à un problème que je n'arrive pas à résoudre, depuis quelques jours.
Pour faire bref je recupere, via une requete, des informations qui sont stockées dans tableau associatif "tableau1" et ce tableau1 est, au fur et à mesure d'une boucle, contenu dans un autre tableau associatif "tableau2".
Ce qui donne schematiquement quelque chose comme ca(d'après un print_r) :
Code:
1 2 3 4 5 6
| Array ( [0] => Array ( [title] => "blabla"
[author]=> "machin")
[1] = > Array( [title] => "blablabla"
[author] => "truc")
...
)[/B] |
books.php
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| class affich_books {
private $dataQuery = array();
protected $tableau1 = array();
public $title = array();
public $author = array();
public $tableau2 = array();
function __construct()
{
//requete SQL qui recupère les données
$this->dataQuery = mysql(...);
}
public function affichage()
{
while($row = mysql_fetch_assoc($this->dataQuery))
{
$tableau1['title'] = $row['title'];
$tableau1['author'] = $row['author'];
$tableau2[] = $tableau1;
}
}
}//fin class affich_books
$affichBooks = new affich_books();
$affichBooks->affichage();
$smarty = new Smarty();
$smarty->assign("affiche", $affichBooks);
$smarty->display('books.tpl'); |
books.tpl
Code:
1 2 3 4 5 6 7 8 9 10 11
| <table>
{foreach key=K item=ind from=$affiche->tableau2}
{foreach key=title item=$affiche->tableau2 from=$ind name=ind}
<tr>
<td>{$smarty.foreach.ind.iteration}</</td>
<td>{$affiche->bigTabb.title}</td>
</tr>
{/foreach}
{/foreach}
</table> |
Je sais bien qu'il y a plus simple coté PHP mais je me suis appercu par hasard que je n'arrivais pas à afficher les informations dans le fichier tpl, en procédant de cette manière. Je n'arrive pas à utiliser correctement les foreach malgré les cours que je peux lire sur le net.
Est ce que quelqu'un voit comment utiliser l'objet dans les foreach?