[英]Double output from mysql. I wonder what I am doing wrong
我從mysql獲得雙輸出。 我正在為列使用資源,為行使用另一個資源,並使用for循環。
function selectItems($table)
{
$resultado='';
$select_resource = mysql_query("SELECT * FROM ".$table);
$num_rows = mysql_num_fields($select_resource);
for($i=0;$i<$num_rows;$i++){
$result = mysql_fetch_array($select_resource);
foreach($result as $key=>$var)
{
$resultado .="$key: $var<br/>\n";
}
$resultado .="<hr />";
}
return $resultado;
}
這是測試
$data = new Db();
$data->connect(HOST, USER, DB, PASSWORD);
echo $data->selectItems("comments");
$data->closeDb();
這是輸出
/*
0: 1
id: 1
1: name
username: name
2: Content
comment: Content
3: 000.000.000.000
ip: 000.000.000.000
4: It’s impressive how popular content management i
title: It’s impressive how popular content management i
5: freemind
avatar: freemind
*/
根據docs ,默認值是同時獲取數字數組和關聯數組。
如果只需要它們之一,則在您的mysql_fetch_array()
調用中添加第二個參數,例如:
$result = mysql_fetch_array($select_resource,MYSQL_ASSOC);
請注意,您實際上是在num_rows
變量中存儲列數。 您應該使用mysql_num_rows()
。
這行至關重要。 $result = mysql_fetch_array($select_resource);
您可以使用mysql_fetch_assoc($select_resource)
就是這樣。
另一件事是mysql_num_rows
更合適。 它將提取所有數據。 可悲的是,您的情況將缺少一項記錄。
我建議您當然要切換到MySQLi或PDO,但是對於您而言,這是正確的解決方案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.