<?php
include "connect.php";
// Make a MySQL Connection
$sql = "SELECT COUNT(*) AS comment FROM comment co INNER JOIN item i WHERE co.items= i.items GROUP BY i.items";
$result = $mysqli->query($sql);
while ($row = $result->fetch_array(MYSQLI_ASSOC))
{
?>
No of Comments: <?php echo $row['comment'];?>
<?php
}
?>
它像这样回声: 例如:
评论:7评论:7
请帮忙!谢谢!
答案 0 :(得分:4)
那是因为你使用GROUP BY
。这意味着您可以获得表格中每个不同i.items
的计数。
您可以通过将这些项添加到查询结果中进行检查(我将WHERE
更改为ON
):
SELECT
i.items,
COUNT(*) AS comment
FROM
comment co
INNER JOIN item i ON co.items = i.items
GROUP BY
i.items
解决方案是指定您想要的项目....
SELECT
i.items,
COUNT(*) AS comment
FROM
comment co
INNER JOIN item i ON co.items = i.items
WHERE
i.items = 'foo'
/* -- Grouping not needed anymore, since you only have 1 item (= 1 group)
GROUP BY
i.items*/
...或者不进行分组,因此您获得所有项目的总数:
-- Will fetch the total number of comments (that are linked to an item)
SELECT
COUNT(*) AS comment
FROM
comment co
INNER JOIN item i ON co.items = i.items
...或限制结果 此查询只截断结果,仅返回其中一个项的计数。 现在,或多或少随机选择了该项目,但您可以添加ORDER BY来影响该项目。
SELECT
COUNT(*) AS comment
FROM
comment co
INNER JOIN item i ON co.items = i.items
GROUP BY
i.items
/* -- Optional order, if you need to influence which of the items is preffered.
ORDER BY
i.items*/
LIMIT 1
所以,从你的问题我只能说出问题是什么,而不是哪种解决方案最适合你。但这里有几个选择。 :)
答案 1 :(得分:0)
试试这个
<?php
include "connect.php";
// Make a MySQL Connection
$sql = "SELECT COUNT(*) AS comment FROM comment co INNER JOIN item i WHERE co.items= i.items GROUP BY i.items";
$result = mysql_query($sql);
echo "No of Comments: ". mysql_result($result, 0);
?>
答案 2 :(得分:0)
你总是可以扔一个LIMIT 1;在您的查询结束时,这可能不是构建语法的方法,但不知道您的数据是什么,肯定有一种简单的方法来获得您期望的结果:
替换
$ sql =“SELECT COUNT(*)AS comment from comment co INNER JOIN item i WHERE co.items = i.items GROUP BY i.items”;
与 $ sql =“SELECT COUNT(*)AS comment from comment co INNER JOIN item i WHERE co.items = i.items GROUP BY i.items LIMIT 1”;
答案 3 :(得分:0)
您是否检查过co.items和i.items的不同值。由于您正在按项目进行分组,因此似乎有2个不同的值,因此每行代表不同的项目值
尝试此调试:
$sql = "SELECT COUNT(*) AS comment, i.items AS itemTest FROM comment co INNER JOIN item i WHERE co.items= i.items GROUP BY i.items";
$result = $mysqli->query($sql);
while ($row = $result->fetch_array(MYSQLI_ASSOC))
{
?>
No of Comments: <?php echo $row['comment'];?> <?php echo $row['itemTest'];?> <br />
<?php
}
?>
您还需要加入和群组吗?你有什么打算做的?如果代码是针对特定项目的页面进行的,那么您应该可以
$sql = "SELECT COUNT(*) AS comment FROM comment co WHERE co.items= 'ITEM-IDENTIFIER-HERE' ";
$result = $mysqli->query($sql);
$row = $result->fetch_array(MYSQLI_ASSOC);
?>
No of Comments: <?php echo $row['comment'];?>
虽然在查询中使用它之前自然会采取预防措施来清理项目标识符,sql注入和所有