電子書籍の厳選無料作品が豊富!

お世話になります
SMARTYとmySQLを利用してサイトを構築しています。
下記の様なSQLデータからデータを一行ずつ生成したいです。
名前だけは取り出すことが出来たのですが、年齢の取り出し方が判りません。
アドバイスをお願い致します



SQL-------------------------------------------------------------------
----------------------------
| id | namae | age |
----------------------------
| 1 | 田中 | 22 |
----------------------------
| 2 | 佐藤 | 29 |
----------------------------

PHP-------------------------------------------------------------------
//空の配列を用意
$name = array();

//SMARTY用の代入変数を生成
while($data = $res -> fetchRow()){
array_push($name,mb_convert_encoding($data['namae'],"SJIS","UTF-8"));
}

$smarty->assign("namae",$name);


HTML------------------------------------------------------------------
{foreach from=$namae item=namae}
{$namae}{$age}<br>
{/foreach}
----------------------------------------------------------------------

A 回答 (1件)

//SMARTY用の代入変数を生成


while($data = $res -> fetchRow()){
array_push($name,mb_convert_encoding($data['namae'],"SJIS","UTF-8"));
}
$data['namae']
しか取り出していない。
文字コード変換はとりあえず無視して簡素なコードを書く
文字化けしても構わないのでとりあえず理想の形になるようにする
それから文字コード変換すりなりなんなりすること。

while($data = $res -> fetchRow()){
$name[] = $data;
}




{foreach from=$namae item=namae}
{$namae}{$age}<br>
{/foreach}
これおかしい。foreachの概念が理解できていない。
phpのforeachと同じ概念です。
$namaeを展開して、namaeにするっておかしいとおもいませんか?

{foreach from=$namae item=row}
{$row.namae}{$row.age}<br>
{/foreach}



ヒントとして、HTMLのテンプレート内に{debug}と書くと。Smartyにどんな値が渡ってきているのかを見ることができます。
    • good
    • 0
この回答へのお礼

ありがとうございました!
やりたいことの結果を得ることが出来ました。
本当に有り難うございました。

お礼日時:2008/08/13 10:43

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!