此查询不断返回2个条目,我无法理解原因。
我有一个数据库,将我的成员保存在一个名为members
的表中。目前它有5条记录,因为它只是用于测试。当我使用以下查询时,我得到两个结果,即我登录到网站的当前ID,结果为空白。
$memarray = mysql_query("SELECT id FROM members") or die ("unable to get info");
$fArray = mysql_fetch_array($memarray);
echo count($fArray); //shows 2
echo $fArray[0]; //shows '102' my current id
echo $fArray[1]; //shows nothing
答案 0 :(得分:3)
mysql_fetch_array()
在数组中存储一行。要检索所有行,您必须重复调用它。
while ($row = mysql_fetch_array($result))
{
...
}
要存储数组中的所有行,只需执行
$rows = array();
while ($row = mysql_fetch_array($result))
$rows[] = $row;
然而,这是非常低效的。如果可能,您应该在while
- 循环中处理您的数据。
答案 1 :(得分:0)
使用mysql_fetch_array($memarray)
,您可以从查询结果中获得第一行
该函数的默认第二个参数是“MYSQL_BOTH”
这意味着你得到[0 =>'someID','id'=>“someID”]
您可以改用“MYSQL_ASSOC”
见php manual
答案 2 :(得分:0)
mysql_fetch_array - 将结果行提取为关联数组,数字数组或两者 http://php.net/mysql_fetch_array
$memarray = mysql_query("SELECT id FROM members") or die ("unable to get info");
$fArray = mysql_fetch_array($memarray);
echo '<pre>';
print_r($fArray);
结果将是这样的事情:
Array ( [0] => 23 [id] => 23 )
显然是计数($ fArray)返回2
计算所有的回忆
$memarray = mysql_query("SELECT COUNT(id) as count FROM members") or die ("unable to get info");
$fArray = mysql_fetch_assoc($memarray);
echo $fArray['count'];
或
$memarray = mysql_query("SELECT id FROM members") or die ("unable to get info");
echo mysql_num_rows($memarray);
获取所有记录
while($row = mysql_fetch_assoc($memarray))
{
print_r($row);
}
我还建议你看看这个通知:
警告自PHP 5.5.0起,此扩展程序已弃用,将来将被删除。相反,MySQLi或PDO_MySQL扩展 应该使用。另请参阅MySQL:选择API指南和相关的常见问题解答 欲获得更多信息。该功能的替代方案包括: mysqli_fetch_array()PDOStatement :: fetch()
http://ir1.php.net/manual/en/mysqli-result.fetch-array.php http://ir1.php.net/manual/en/pdostatement.fetch.php
答案 3 :(得分:0)
使用此:
$memarray = mysqli_query("SELECT id FROM members") or die ("unable to get info");
while ($fArray = mysqli_fetch_array($memarray))
{
echo $fArray["id"];
}