郎朗坤
分析一下,首先,第一个问题:$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}