を使用するmysql_fetch_row
と、まさにそのとおりに実行されます。行をフェッチしますが、複数の行はフェッチしません。私の推測では、結果セットは次のようになります (間違っている場合は、質問で明確にしてください)。
id | name
----+------------
1 | a
2 | b
これを回避する方法は、次のように Smarty で分解できる配列を構築することです。
/* PHP code */
$your_array = array();
$sel=mysql_query("select id, name from form");
while($row=mysql_fetch_array($sel)) {
$your_array[] = $row;
}
$smarty->assign('contact', $your_array);
$smarty->display('testfunction.tpl');
これで、基本的に次のような配列が Smarty に作成されました。
[1] => (
[0] => 1,
[1] => a
),
[2] => (
[0] => 2,
[1] => b
)
これは、説明したように表示できます。
{* Smarty Code *}
<ul>
{foreach from=$contact item=foo}
<li>{$foo[0]}: {$foo[1]}</li>
{/foreach}
</ul>
私はそれを試していませんが、それは仕事をするはずです。正しくない場合は{debug}
、テンプレートで a を使用して、配列がどのように$contact
形成されるかを確認してください。
別のアドバイス:
ここで使用している PHP mysql コネクタは非推奨です。この拡張機能は使用しないことを強くお勧めします。代わりに、MySQLiまたはPDO_MySQL拡張機能を使用する必要があります。