4 回答

TA貢獻1921條經驗 獲得超9個贊
分析一下,首先,第一個問題:
$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}

TA貢獻1815條經驗 獲得超10個贊
因為你在進行保存的時候(結果集)這里應該是個二維數組你可以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;
}你試試這個

TA貢獻1820條經驗 獲得超3個贊
$rs=mysql_fetch_array($query); 這句是取數據庫里面的一條記錄,用while循環取出所有記錄:while($arr=mysql_fetch_array($res,MYSQL_ASSOC)){
array_push($result,$arr);
}return $result;
- 4 回答
- 0 關注
- 976 瀏覽
添加回答
舉報