To znowu ja :)
Mam problem z wyświetleniem wielowymiarowej tablicy w smarty.
Najpierw pokażę jak ta tablica powstaje/zmienia zawartość w php
private $a_produkty = Array();
public function dodaj_do_koszyka($iv_id_produktu)
{
$sql = "SELECT nazwa, cena FROM produkty WHERE id_produktu='$iv_id_produktu'";
$a_produkt = $this->o_db->GetRow($sql);
$this->a_produkty[]['id_produktu'] = $iv_id_produktu;
$this->a_produkty[]['nazwa'] = $a_produkt['nazwa'];
$this->a_produkty[]['cena'] = $a_produkt['cena'];
}
I tyle. Zwracana do smartów jest o tak:
public function zwroc_zawartosc_koszyka()
{
$o_smarty->assign('a_produkty_z_koszyka', $this->a_produkty);
}
Tabela po np. dodaniu dwóch produktów wygląda tak:
array(6) { [0]=> array(1) { ["id_produktu"]=> string(1) "3" } [1]=> array(1) { ["nazwa"]=> string(9) "Retro 26s" } [2]=> array(1) { ["cena"]=> string(3) "289" } [3]=> array(1) { ["id_produktu"]=> string(1) "8" } [4]=> array(1) { ["nazwa"]=> string(18) "Giant Boulder 2010" } [5]=> array(1) { ["cena"]=> string(4) "1299" } }
I nie bardzo mam pomysł jak wyświetlić zawartość w smartach. Robię tak:
{foreach from=$a_produkty_z_koszyka item=a_produkt_z_koszyka}
{$a_produkt_z_koszyka.id_produktu}{$a_produkt_z_koszyka.nazwa} cena {$a_produkt_z_koszyka.cena}<br>
{/foreach}
Smarty wywalają mi to:
3 cena
Retro 26s cena
cena 289
8 cena
Giant Boulder 2010 cena
cena 1299
A chciałbym:
3 Retro 26s cena 289
8 Giant Boulder 2010 cena 1299