Thursday, May 10, 2007

Smarty MySQLとの連携方法2

前回紹介した方法より若干速度が速い。ただしプログラム側にデータベースのカラムを追加する必要がある。

array配列を使用したSmaryのassignのサンプル sectionの場合
---php---

if (!($cn = mysql_connect("localhost", "hoge", "hoge"))) {
die;
}
if (!(mysql_select_db("test"))) {
die;
}

$sql = "select * from address";
if (!($rs = mysql_query($sql))) {
die;
}

$id= array();
$name= array();
$tel= array();
$email= array();

while ($item = mysql_fetch_array($rs)) {
array_push($id,$item['id']);
array_push($name,$item['name']);
array_push($tel,$item['tel']);
array_push($email,$item['email']);
}

$objSmarty->assign('id',$id);
$objSmarty->assign('name',$name);
$objSmarty->assign('tel',$tel);
$objSmarty->assign('email',$email);

mysql_close($cn);
$objSmarty->display('html.tmpl');

---html----
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF8">
<title>テンプレート</title>
</head>
<body>

<hr />
{section name=customer loop=$id}
<p>
name: {$name[customer]}<br />
id: {$id[customer]}<br />
cell: {$tel[customer]}<br />
e-mail: {$mail[customer]}
</p>
{/section}


</body>
</html>

1 comment:

hi said...

foreachでも可能です。