ようこそ ゲスト さん、新規登録(無料)して気になる疑問を解決しませんか?

質問

質問者:pillow_77 htmltemplateとmysqlのデータ
困り度:
  • 困っています
お世話になります。
PHP初心者です。よろしくお願いします。
現在レンタルサーバで、PHPとMySQLを使ってサイト構築に取り組み中です。
PHPテンプレートエンジンのHtmlTemplate for PHP
http://web.archive.org/web/20060214042209/hoover.ktplan.ne.jp/kaiha...
を利用してPHPとHTMLを分離しようと考えており、
http://lamp.blab7.net/archives/98
のサイトのソース
-------------------
以下、データベースMySQLからデータを取得してテーブルに表示するサンプルです。(エラー処理などは省略しています)
▼PHP

require_once("htmltemplate.inc");

$db = mysql_connect([ホスト名], [ユーザー名], [パスワード]);
mysql_select_db([データベース名], $db);

$sql = "SELECT * FROM item";
$rec = mysql_query($sql, $db);
if($data = mysql_fetch_array($rec)){
do{
$arg["item"][] = array(
"code"=>$data["code"],
"name"=>$data["name"]
);
}while($data = mysql_fetch_array($rec));
}
mysql_free_result($rec);
mysql_close($db);

Htmltemplate::t_include("index.html", $arg);

▼テンプレート

<html>
<body>

<table>
<tr>
<th>商品コード</th><th>商品名</th>
</tr>
<!--{def item}-->
<!--{each item}-->
<tr>
<td>{val item/code}</td><td>{val item/name}</td>
</tr>
<!--{/each}-->
<!--{/def}-->
<!--{ndef item}-->
<tr>
<td colspan="2">データはありません。</td>
</tr>
<!--{/ndef}-->
</table>

</body>
</html>
------------------------------
を参照してPHPプログラムとHTMLファイルを作成したのですが、うまく動作せず、ndefの「データはありません。」となってしまい困っています。
テンプレートエンジンを使わず、HTMLにPHPを埋め込んで単体でページを表示させるとうまくいくので、DBへの接続は問題なさそうです。
DBの値を配列にしている、
if($data = mysql_fetch_array($rec)){
do{
$arg["item"][] = array(
"code"=>$data["code"],
"name"=>$data["name"]
);
}while($data = mysql_fetch_array($rec));
}
のあたりがよく理解できていません。。。
初心者のため、基本的なことがわかっておらず、もしかしたらとんちんかんな質問になってしまっているかもしれませんが、何が問題となっているかおわかりになる方がいらっしゃいましたら教えていただけますでしょうか。
よろしくお願いいたします。
質問投稿日時:09/11/07 00:29
質問番号:5427730