来自mysql_fetch_array的数组,其中查询选择所有内容并未保存所有值

时间:2011-07-18 13:17:43

标签: php mysql arrays

所以,我有一个数据库(带有一个名为users的表),让用户连接帐户,并按用户数来查找他们的帐户,让我们说(有价值):

Usernumber|Username|Email
-------------------------
1 | Justin | email@email.com
2 | Test | test@test.com
2 | Hi | gah@goo.com
1 | Foo | hey@hey.com
1 | Bar | Du@de.com

现在,在PHP中,我这样做:

$stuff = mysql_fetch_array(mysql_query("SELECT * FROM users WHERE usernumber=1"));

现在,我做count($stuff);并且它总是返回14,无论我是用一个还是两个用户编号...我无法弄清楚问题,但我想知道是否有其他人看到它,或者知道我不知道如何配置某些文件(限制或什么?)。我正在使用XAMPP来测试一切。

另外,当我在PHPMYADMIN中将$ stuff作为表中的SQL时,它会返回它应该的所有值。

所以问题是:我缺少什么,如何让它返回所有值而不仅仅是2行? (该表有7列)。

谢谢, Justin W。

3 个答案:

答案 0 :(得分:2)

默认情况下,mysql_fetch_array将返回组合索引的列数组(0 - 6)和关联数组(column_name => value)

这就是为什么你有14个值的行(7个数字索引,7个关联索引)。

此外,每个函数调用只能获得一行。 14是列数(7 * 2),而不是行数。

您需要开始将MySQL结果资源保存在自己的变量中:

$result = mysql_query("SELECT * FROM users WHERE usernumber=1");

这样您就可以在该结果集上多次调用mysql_fetch_array。此外,您可以通过调用mysql_num_rows($result)

来检查行数

答案 1 :(得分:0)

$result = mysql_query("SELECT * FROM users WHERE usernumber = 1");
while($row = mysql_fetch_assoc($result)){
    print_r($row);
}

尝试此操作以查看结果是否符合您的要求。

答案 2 :(得分:0)

你有可能获得该值,因为当你执行mysql_fetch_array()时,你会得到你的数组中的结果:

$stuff[0] => "1"; 
$stuff['usernumber'] => "1"; 
$stuff[1] => "justin";
$stuff['username'] => "justin";

依此类推,执行print_r()或var_dump()并查看$ stuff数组中的实际值。