在字段中获取最常见的条目时没有结果

时间:2013-09-12 11:35:04

标签: php mysql

我感觉像门把手一样愚蠢。我可以得到一些建议,为什么我没有得到这里返回的结果。请非常友好地让我摆脱困境。

$query = mysql_query
(
   "SELECT first_name, 
           COUNT(first_name) AS answer
    FROM orders 
    GROUP BY first_name 
    ORDER BY answer DESC
    LIMIT 1"
); 

echo "<p>The most frequent customer is $result</p>";

3 个答案:

答案 0 :(得分:1)

检查一下..

$query = mysql_query("SELECT first_name, COUNT(first_name) AS answer 
FROM orders 
GROUP BY first_name 
ORDER BY answer DESC
LIMIT 1"); 

$result = mysql_fetch_assoc($query);
echo "<p>The most frequent customer is " . $result["first_name"] . "</p>";

答案 1 :(得分:0)

试试这个:

$result = mysql_query("SELECT first_name, COUNT(first_name) AS answer FROM orders GROUP BY first_name ORDER BY answer DESC LIMIT 1");
$array = mysql_fetch_assoc($result);
echo "<p>The most frequent customer is ".$array[0]['first_name']."</p>";

答案 2 :(得分:0)

执行查询后,您错过了对mysql_fetch_array()的调用。查询也可以是INSERT操作或类似操作。它只返回有关请求本身的信息(例如,它是否成功,是附加到它的结果?),而不是信息本身。

这与数据库本身有关:信息作为所谓的游标返回,您可以根据需要进行迭代。因此,并非所有结果都必须一次保存在内存中。例如。你不可能只有一个结果,但在一百万行。在某些时候,这可能对你的记忆太过分了。然后,光标和行式迭代有很多帮助。

所以,你需要打电话:

$query = mysql_query("SELECT first_name, COUNT(first_name) AS answer 
FROM orders 
GROUP BY first_name 
ORDER BY answer DESC
LIMIT 1");

$result = mysql_fetch_array($query); // will retrieve the first row from the result
// if you have multiple rows (not LIMIT 1), you would have to call it again and again

echo "<p>The most frequent customer is $result['first_name']</p>";