您的位置:首页 > 数据库 > MySQL

Smarty如何访问mysql查询出的结果为多行多列时的数据

2015-04-21 20:54 609 查看
以下代码演示了如何在html模板中遍历出查询的二维数组的数据的方式

test4.php文件内容为

<?php
require_once '../include/Smarty_inc.php';
//连接到数据库服务器,这里的方法是面向过程的方式,也有面向对象的连接数据库的方式
$db=mysqli_connect("localhost", "root", "******") or die("链接错误".mysqli_error($db));
$sql="create database testdb;";
//该函数完成sql语句对数据库的操控,
/*失败时返回 FALSE ,通过 mysqli_query()  成功执行SELECT, SHOW, DESCRIBE或 EXPLAIN
查询会返回一个mysqli_result 对象,其他查询则返回 TRUE 。 */
$result=mysqli_query($db, $sql);
//选择连接的数据库
mysqli_select_db($db, "testdb");
$sql="create table test4(id int, name varchar(50), hit int);";
$result=mysqli_query($db, $sql) or die("error : ".mysqli_error($db));
$sql="insert into test4(id, name, hit) values(123, \"PHP123\", 0);";
$result=mysqli_query($db, $sql) or die("error : ".mysqli_error($db));
$sql="insert into test4(id, name, hit) values(456, \"PHP456\", 0);";
$result=mysqli_query($db, $sql) or die("error : ".mysqli_error($db));
$sql="insert into test4(id, name, hit) values(789, \"PHP789\", 0);";
$result=mysqli_query($db, $sql) or die("error : ".mysqli_error($db));
$sql="select * from test4";
$result=mysqli_query($db, $sql) or die("error : ".mysqli_error($db));
$dbnum=null;
//mysqli_fetch_row($result)能够返回查询结果的一行数据
//mysqli_fetch_array($result)也只是能够返回结果的一行数据,这两个函数有点差别
//的类型是mysqli_result,而该mysqli_result是什么类型,有什么特点,是理解数据库操作最重要的一环
for($i=0; $rows=mysqli_fetch_row($result); $i++)
{
//因为返回结果有很多行,所以使用二维数组将其保存
$dbnum[$i]=$rows;
}
$smarty->assign("dbnum", $dbnum);
$smarty->display("test4.html");
$sql="update test4 set hit=hit+1";
$result=mysqli_query($db, $sql) or die("error : ".mysqli_error($db));
//mysqli_free_result($result);
$sql="drop database testdb";
$result=mysqli_query($db, $sql) or die("error : ".mysqli_error($db));
mysqli_close($db);

?>


test4.html的内容为

{include file="head.html" title="PHP学习"}
</head>
<body>
<!-- 这里使用了两成循环来访问二维数组 -->
{section name=s loop=$dbnum}
{section name=ss loop=$dbnum[s]}
{$dbnum[s][ss]}
{sectionelse}
none
{/section}<br />
{sectionelse}
无内容
{/section}
<!-- {foreach key=k item=v from=$dbnum} -->
<!-- {$k} : {$v}<br /> -->
<!-- {/foreach} -->
</body>
</html>
查询出的结果集为一维数组时直接使用mysqli_fetch_array($resutlt)或者mysqli_fetch_row($resutl)都可以
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: