smarty: lijst word niet weergegeven bij foreach
ik heb een lijst met een op tien. in php krijg ik deze lijst wel te zien. via assign gaat deze naar de volgende pagina en daar gebruik ik dan de foreach. Helaas worden die waarden niet weergegeven in een lijst. Alleen de eerste van de 10.
Hieronder de code van de PHP
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
$query_rsCount = "SELECT countries.country_id, countries.name_". $Lang . " AS name, COUNT(properties.addr_country_id) AS CountryAantal FROM countries, properties WHERE properties.addr_country_id = countries.country_id GROUP BY name ASC ORDER BY `CountryAantal` DESC LIMIT 0 , 10";
$rsCount = mysql_query($query_rsCount) or die(mysql_error());
$row_rsCount = mysql_fetch_assoc($rsCount);
$totalRows_rsCount = mysql_num_rows($rsCount);
// herhalen van de opgevraagde landen als controle
$CountryName = $row_rsCount['name'];
do {
echo $row_rsCount['name'] . "<BR>";
}
while ($row_rsCount = mysql_fetch_assoc($rsCount));
$top_ten_intro = $lng['top_ten_intro'];
$smarty->assign('TopTenList', $query_rsCount);
$smarty->assign('CountryName', $CountryName);
$smarty->assign('top_ten_intro', $top_ten_intro); ?>
$query_rsCount = "SELECT countries.country_id, countries.name_". $Lang . " AS name, COUNT(properties.addr_country_id) AS CountryAantal FROM countries, properties WHERE properties.addr_country_id = countries.country_id GROUP BY name ASC ORDER BY `CountryAantal` DESC LIMIT 0 , 10";
$rsCount = mysql_query($query_rsCount) or die(mysql_error());
$row_rsCount = mysql_fetch_assoc($rsCount);
$totalRows_rsCount = mysql_num_rows($rsCount);
// herhalen van de opgevraagde landen als controle
$CountryName = $row_rsCount['name'];
do {
echo $row_rsCount['name'] . "<BR>";
}
while ($row_rsCount = mysql_fetch_assoc($rsCount));
$top_ten_intro = $lng['top_ten_intro'];
$smarty->assign('TopTenList', $query_rsCount);
$smarty->assign('CountryName', $CountryName);
$smarty->assign('top_ten_intro', $top_ten_intro); ?>
dan de code die ik gebruik bij de TPL pagina
{$top_ten_intro}
{foreach from=$TopTenList item=land}
<li>{$CountryName}</li>
{/foreach }
Wanneer ik {$land.CountryName} gebruik verschijnt er een letter S.
Ik vraag mij af wat ik hier nu fout doe?
Toevoeging op 02/06/2011 15:24:53:
heb het al opgelost
PHP CODE:
$db_query = "SELECT countries.country_id, countries.name_". $Lang . " AS name, COUNT(properties.addr_country_id) AS CountryAantal FROM countries, properties WHERE properties.addr_country_id = countries.country_id GROUP BY name ASC ORDER BY `CountryAantal` DESC LIMIT 0 , 10";
$db_result = mysql_query($db_query);
$name = $db_result['name'];
$landen = array();
while($db_row = mysql_fetch_assoc($db_result)) {
$landen[] = $db_row;
}
$top_ten_intro = $lng['top_ten_intro'];
$smarty->assign('landen', $landen);
$smarty->assign('name', $name);
$smarty->assign('top_ten_intro', $top_ten_intro);
template pagina (main.tpl)
<div id="TopTien">
<STRONG> {$top_ten_intro} </STRONG>
{foreach from=$landen item=record}
<li><a href="#" title="{$record.name}">{$record.name}</a></li>
{/foreach}
</div>
Gewijzigd op 02/06/2011 14:30:50 door Allan de Bruin
Er zijn nog geen reacties op dit bericht.