[smarty] gegevens uit database inlezen in tpl
Wil namelijk de foreach lusje uit database in template gebruiken. In normaal php code werkt het goed. Alleen in Smarty niet.
De orgineel code die het wel werkt is:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
$query="select user_bedrijfnaam, user_id, gebied_user_id, gebied_postcode from $gebiedtab,$usertab where gebied_user_id=user_id AND gebied_postcode='$postcode'";
$database->setQuery( $query );
$rows = $database->loadObjectList();
$k = 0;
$page="<table border=0 cellspacing=2 cellpadding=0 width=100%><tr><td><table border=0>";
for ($i=0, $n=count( $rows ); $i < $n; $i++) {
$row = &$rows[$i];
$page.="<tr><td><a href=\"index.php?zaakid=".$row->user_id."\">".$row->user_bedrijfnaam."</a></td></tr>";
$k = 1 - $k;
}
$page.="</table></td></tr></table>";
echo $page;
$database->setQuery( $query );
$rows = $database->loadObjectList();
$k = 0;
$page="<table border=0 cellspacing=2 cellpadding=0 width=100%><tr><td><table border=0>";
for ($i=0, $n=count( $rows ); $i < $n; $i++) {
$row = &$rows[$i];
$page.="<tr><td><a href=\"index.php?zaakid=".$row->user_id."\">".$row->user_bedrijfnaam."</a></td></tr>";
$k = 1 - $k;
}
$page.="</table></td></tr></table>";
echo $page;
En nu wil ik die in Smarty template hebben:
index.php
Code (php)
1
2
3
4
2
3
4
$query="select user_bedrijfnaam, user_id, gebied_user_id, gebied_postcode from $gebiedtab,$usertab where gebied_user_id=user_id AND gebied_postcode='$postcode'";
$smarty->assign('exists',$exists);
$smarty->assign('postcode',$postcode);
$smarty->assign('bedrijfnaam',$database->setQuery($query));
$smarty->assign('exists',$exists);
$smarty->assign('postcode',$postcode);
$smarty->assign('bedrijfnaam',$database->setQuery($query));
index.tpl
Code (php)
1
2
3
4
5
2
3
4
5
{section name='itm' loop=$bedrijfnaam}
<tr><td><a href="index.php?zaakid={$bedrijfnaam[itm].user_id}">{$bedrijfnaam[itm].user_bedrijfnaam}</a></td></tr>
{sectionelse}
<tr><td>Geen deelnemende zaak gevonden.</td></tr>
{/section}
<tr><td><a href="index.php?zaakid={$bedrijfnaam[itm].user_id}">{$bedrijfnaam[itm].user_bedrijfnaam}</a></td></tr>
{sectionelse}
<tr><td>Geen deelnemende zaak gevonden.</td></tr>
{/section}
Heb de handleiding op Smarty site al doorgelezen.maar wordt hiervan niks wijzer. Wie van jullie heeft oplossing?
Kijk eens naar de smarty foreach functie.
Wat is je output? Als iets niet mogelijk is geeft Smarty daar als het goed is ook een melding van.
id=1, bedrijfnaam=bedrijf1
id=2, bedrijfnaam=bedrijf2
etc