PHP Smarty section 循环输出数据库内容问题

请教大家个问题关于smarty的PHP页面$sql="select*fromuser";$query=mysql_query($sql);$rs=mysql_fetch_... 请教大家个问题 关于smarty的
PHP页面
$sql="select * from user";
$query=mysql_query($sql);
$rs=mysql_fetch_array($query);
$arr[]=array("ID"=>$rs['id'],"UserID"=>$rs[''UserID],"UserPwd"=>$rs['UserPwd']);
$smarty->assign("rs",$arr);
$smarty->display("index.html")HTML页面{section name=list loop=$rs}
ID={$rs[list].ID}-----UserID:{$rs[list].UserID}----UserPwd:{$rs[list].UserPwd}<br/>
{sectionelse}
无内容输出
{/section}数据库有7条内容
可为什么输出结果只有第一条呢
展开
 我来答
匿名用户
2013-07-15
展开全部
分析一下,首先,第一个问题:
$rs=mysql_fetch_array($query);
通过这一句,取得了一条记录!得到一个数组
array(
'id'=>x,
'userID'=>'xxx',
'userPwd'=>'xxx'
)
为何只有一条呢?
虽然你查找的是所有的记录,但是mysql_fetch_array在
取得第一条记录后,就会停下来,所以你得想个办法
让它取的数据后,将指针向下移动,这样才能得到其它的数据!
补充:
while($arr = mysql_fetch_array($query,MYSQL_ASSOC)){
$arrData[] = $arr;
}
这样一来,所有的数据全放在了$arrData里面!
第一个问题解决.
第二个问题:
你这里的:$arr[]=array("ID"=>$rs['id'],"UserID"=>$rs[''UserID],"UserPwd"=>$rs['UserPwd']);
完全是多余的,而且是不正确的!除非你的目的就是取一条记录!这和你提问有点冲突!
假设你通过$rs=mysql_fetch_array($query)能取到所有的记录!
那么,这些记录在$rs中是一个什么样形式存在呢,是一个多维数组吧!
类似:
$rs = array(
0=>array('id'=>1,'userid'=>'xx','userpwd'=>'xxx'),
1=>array('id'=>2,'userid'=>'xx','userpwd'=>'xxx'),
2=>array('id'=>3,'userid'=>'xx','userpwd'=>'xxx')
);
看看你上面取值的时候
$arr[] = array("id"=>$rs['id']......);
$rs中的有id这个键值吗?完整代码:
$sql="select * from user";
$query=mysql_query($sql);
while($rs=mysql_fetch_array($query,MYSQL_ASSOC)){
//这是按你的意思改的,不过个人建议这一部可以省去,直接:$arrData[] = $rs则可;
$arr=array("ID"=>$rs['id'],"UserID"=>$rs[''UserID],"UserPwd"=>$rs['UserPwd']);
$arrData[] = $arr;
}
$smarty->assign("rs",$arrData);
$smarty->display("index.html")HTML页面{section name=list loop=$rs}
ID={$rs[list].ID}-----UserID:{$rs[list].UserID}----UserPwd:{$rs[list].UserPwd}<br/>
{sectionelse}
无内容输出
{/section}
匿名用户
2013-07-15
展开全部
因为你在进行保存的时候(结果集)这里应该是个二维数组你可以function select($sql){ //执行查询操作

if($this->db===false){
$this->write_log('连接失败,请检查数据库连接!');
exit;
}
$result=array();
//mysql_query("set names utf-8");
$res=mysql_query($sql);
while($arr=mysql_fetch_array($res,MYSQL_ASSOC)){
array_push($result,$arr);
}
//print_r($result);
return $result;
}你试试这个
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-07-15
展开全部
$rs=mysql_fetch_array($query); 这句是取数据库里面的一条记录,用while循环取出所有记录:while($arr=mysql_fetch_array($res,MYSQL_ASSOC)){
array_push($result,$arr);
}return $result;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式