问题可能很简单。
$q = "SELECT id FROM users
WHERE name LIKE '%$u%' OR active LIKE '%$u%'";
echo $q;
$u = mysql_query($q) or die("There is a server error : " . mysql_error());
$u = mysql_fetch_array($u);
print_r($u);
但它让我回头
[id] => 6
当我在Mysql Workbench中执行查询时,它返回
6
7
8
这可能是一个问题,但我不明白为什么。 谢谢:))
答案 0 :(得分:1)
那是因为mysql_fetch_array
只返回一行。为了获得更多行,它可以循环工作。
while ($row = mysql_fetch_array($u)) {
print_r($row);
}
但是,请阅读关于mysql_*
功能使用的评论。这一个:
欢迎使用Stack Overflow!请不要使用
mysql_*
函数 新代码。它们已不再维护,社区已经开始 deprecation process。请参阅red box?相反,您应该了解prepared statements并使用其中之一 PDO或MySQLi。如果你 无法决定,this article将有助于选择。 如果您想学习,here is good PDO tutorial。
答案 1 :(得分:1)
使用mysql_fetch_array($u)
而不使用while循环会返回单个记录。要获取整个结果集,您需要使用带有while循环的mysql_fetch_array($u)
。例如:
$q = "SELECT id FROM users WHERE name LIKE '%$u%' OR active LIKE '%$u%'";
$u = mysql_query($q) or die("There is a server error : " . mysql_error());
while($row = mysql_fetch_array($u))
{
print_r($row);
}
答案 2 :(得分:0)
mysql_fetch_array
获取一行 - 您需要遍历结果集以获取其余结果。
答案 3 :(得分:0)
mysql_fetch_array()
只返回一行。要获得更多行,您需要一个循环。
同样mysql_fetch_array()
返回字符串关联和整数索引。
您要使用的是mysql_fetch_assoc()
,如下所示:
while ($data = mysql_fetch_assoc($u)) {
echo $data['id'];
}