我从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
*/
答案 0 :(得分:1)
根据docs,默认是获取数字和关联数组。
如果您只想一个,请在mysql_fetch_array()
来电中添加第二个参数,例如:
$result = mysql_fetch_array($select_resource,MYSQL_ASSOC);
请注意,您实际上是在num_rows
变量中存储列的数量。您应该使用mysql_num_rows()
。
答案 1 :(得分:0)
此行至关重要$result = mysql_fetch_array($select_resource);
您可以使用mysql_fetch_assoc($select_resource)
,就是这样。
另一件事是mysql_num_rows
更合适。它会提取所有数据。在你的情况下,遗憾的是它将缺少一条记录。
我建议你切换到MySQLi,或者当然是PDO ,但在你的情况下,这是一个正确的解决方案。