[smarty] gegevens uit database inlezen in tpl

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Sander C

Sander C

27/06/2008 13:48:00
Quote Anchor link
Ben net pas begonnen met templateparser van Smarty. In paar uurtjes ben ik al heel wat vooruit gegaan. Maar 1 ding houdt mij erg lang bezig.

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)
PHP script in nieuw venster Selecteer het PHP script
1
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;


En nu wil ik die in Smarty template hebben:
index.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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));


index.tpl
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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}


Heb de handleiding op Smarty site al doorgelezen.maar wordt hiervan niks wijzer. Wie van jullie heeft oplossing?
 
PHP hulp

PHP hulp

24/12/2024 18:55:39
 
Jurgen assaasas

Jurgen assaasas

27/06/2008 14:05:00
Quote Anchor link
Kijk eens naar de smarty foreach functie.
 
Sander C

Sander C

27/06/2008 14:13:00
Quote Anchor link
Het werkt ook helaas niet. Heb ook al eerder geprobeerd. Nu nogmaals opnieuw met foreach functie..

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
{foreach from=$bedrijfnaam key=cid item=i}
<tr><td><a href="index.php?zaakid={$cid}">{$i.user_bedrijfnaam}</a></td></tr>
{foreachelse}
<tr><td>Geen deelnemende zaak gevonden.</td></tr>
{/foreach}
 
Jurgen assaasas

Jurgen assaasas

27/06/2008 14:14:00
Quote Anchor link
Wat is je output? Als iets niet mogelijk is geeft Smarty daar als het goed is ook een melding van.
 
Sander C

Sander C

27/06/2008 14:19:00
Quote Anchor link
Output is eigenlijk:

id=1, bedrijfnaam=bedrijf1
id=2, bedrijfnaam=bedrijf2
etc
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.