Smarty如何访问mysql查询出的结果为多行多列时的数据
2015-04-21 20:54
441 查看
以下代码演示了如何在html模板中遍历出查询的二维数组的数据的方式
test4.php文件内容为
test4.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)都可以
相关文章推荐
- MySQL如何将select子查询结果横向拼接后插入数据表中
- MySQL如何将select子查询结果横向拼接后插入数据表中
- mysql如何实现多行查询结果合并成一行
- mysql如何实现多行查询结果合并成一行
- MYSQL如何自动为查询数据的结果编上序号详解
- 【ASH】如何导出视图DBA_HIST_ACTIVE_SESS_HISTORY的查询结果数据
- 关于mysql处理百万级以上的数据时如何提高其查询速度的方法
- 如何使用jdbc template查询数据,而用ibatis组装结果?
- 如何优化Mysql千万级快速分页,limit优化快速分页,MySQL处理千万级数据查询的优化方案!
- mysql中的多行查询结果合并成一个
- mysql列存入逗号分隔的数据,如何查询
- mysql中的多行查询结果合并成一个(转)
- 如何Mysql查询这一年第X周的数据?
- 如何在MySQL查询结果集中得到记录行号
- MySQL服务器内部安全数据目录如何访问
- MySQL中, 如何查询某一天, 某一月, 某一年的数据.
- mysql 分组查询数据时,如何获得用于分页的总记录数?
- mysql中的多行查询结果合并成一个
- MySql如何分级查询上千万行记录的表,并将该大数据显示到界面中