1

The problem is probably quite simple.

$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);

But it returns me

[id] => 6

When I execute the query in Mysql Workbench it returns

6
7
8

It's probably a fetching problem but I don't understand why. Thanks :)

4

4 回答 4

1

那是因为mysql_fetch_array只返回一行。要获得更多行,它会循环工作。

while ($row = mysql_fetch_array($u)) {
   print_r($row);
}

但是,请阅读我关于mysql_*函数使用的评论。这个:

欢迎来到堆栈溢出!请不要将mysql_*函数用于新代码。它们不再被维护并且社区已经开始了弃用过程。看到红框了吗?相反,您应该了解准备好的语句并使用 PDOMySQLi。如果你不能决定,这篇文章将有助于选择。如果你想学习,这里有很好的 PDO 教程

于 2012-06-22T20:22:02.573 回答
1

使用mysql_fetch_array($u)没有 while 循环返回单个记录。要获取整个结果集,您需要使用mysql_fetch_array($u)while 循环。例如:

$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);
}
于 2012-06-23T05:44:00.357 回答
0

mysql_fetch_array获取单行 - 您需要遍历结果集以获取其余结果。

于 2012-06-22T20:22:32.310 回答
0

mysql_fetch_array()只返回一行。要获得更多行,您需要一个循环。

mysql_fetch_array()返回字符串关联和整数索引。你想使用的是mysql_fetch_assoc()这样的:

while ($data = mysql_fetch_assoc($u)) {
   echo $data['id'];
}
于 2012-06-22T20:26:29.693 回答