Php mySQL按评论最多和评论最少排序

Php mySQL按评论最多和评论最少排序,php,mysql,database,Php,Mysql,Database,我正试图根据每个主题的评论量来排列项目列表,如下所示: $page = $_GET['page']; $query = mysql_query("SELECT * FROM topic WHERE cat_id='$page' LIMIT $start, $per_page"); if (mysql_num_rows($query)>=1) { while($rows = mysql_fetch_array($query)) { $number = $rows['topic_id'];

我正试图根据每个主题的评论量来排列项目列表,如下所示:

$page = $_GET['page'];

$query = mysql_query("SELECT * FROM topic WHERE cat_id='$page' LIMIT $start, $per_page");

if (mysql_num_rows($query)>=1)
{
while($rows = mysql_fetch_array($query))
{
$number = $rows['topic_id'];
$title = $rows['topic_title'];
$description = $rows['topic_description'];

//get topic total
$sqlcomment = mysql_query("SELECT * FROM comments WHERE topic_id='$number'");
$commentnumber = mysql_num_rows($sqlcomment);
// TRYING TO ORDER OUTPUT ECHO BY TOPIC TOTAL ASC OR DESC
echo "
<ul>
<li><h4>$number. $title</h4>
<p>$description</p>
<p>$topictime</p>
<p>$commentnumber</p>
</li>
</ul>
";
}
}
else
{
echo "<p>no records available.</p><br>";
}
$page=$\u GET['page'];
$query=mysql\u query(“从主题中选择*,其中cat\u id='$page'LIMIT$start$per\u page”);
if(mysql_num_rows($query)>=1)
{
while($rows=mysql\u fetch\u array($query))
{
$number=$rows['topic_id'];
$title=$rows['topic_title'];
$description=$rows['topic_description'];
//获取主题总数
$sqlcomment=mysql_query(“从注释中选择*,其中主题_id='$number');
$commentnumber=mysql\u num\u行($sqlcomment);
//尝试按主题总ASC或DESC排序输出回显
回声“
  • $number.$title $description

    $topictime

    $commentnumber

"; } } 其他的 { echo“没有可用的记录。


”; }

按$num_行(ASC/DESC值)对每个回显进行排序的最佳方式是什么?注意:我已经用完整的代码进行了更新-我正在尝试按$commentnumber对输出进行排序

第一个查询应该是:

SELECT t.*, COUNT(c.topic_id) AS count
FROM topic AS t
LEFT JOIN comments AS c ON c.topic_id = t.topic_id
WHERE t.cat_id = '$page'
GROUP BY t.topic_id
ORDER BY count
LIMIT $start, $per_page
您可以通过以下方式获得
$commentnumber

$commentnumber = $rows['count'];

您根本不需要第二个查询。

第一个查询应该是:

SELECT t.*, COUNT(c.topic_id) AS count
FROM topic AS t
LEFT JOIN comments AS c ON c.topic_id = t.topic_id
WHERE t.cat_id = '$page'
GROUP BY t.topic_id
ORDER BY count
LIMIT $start, $per_page
您可以通过以下方式获得
$commentnumber

$commentnumber = $rows['count'];

您根本不需要第二个查询。

第一个查询应该是:

SELECT t.*, COUNT(c.topic_id) AS count
FROM topic AS t
LEFT JOIN comments AS c ON c.topic_id = t.topic_id
WHERE t.cat_id = '$page'
GROUP BY t.topic_id
ORDER BY count
LIMIT $start, $per_page
您可以通过以下方式获得
$commentnumber

$commentnumber = $rows['count'];

您根本不需要第二个查询。

第一个查询应该是:

SELECT t.*, COUNT(c.topic_id) AS count
FROM topic AS t
LEFT JOIN comments AS c ON c.topic_id = t.topic_id
WHERE t.cat_id = '$page'
GROUP BY t.topic_id
ORDER BY count
LIMIT $start, $per_page
您可以通过以下方式获得
$commentnumber

$commentnumber = $rows['count'];

您根本不需要第二个查询。

首先,这里有错误

echo "divs in order from least to greatest "number = $num_rows"";
应该是

echo "divs in order from least to greatest number = " . $num_rows . "";
关于评论最多的尝试

$sql = "SELECT * FROM `table` WHERE `id` = '$id' ORDER BY column DESC/ASC";
或者,如果没有计数列,请尝试使用

$sql = "SELECT * FROM `table` WHERE `id` = '$id' ORDER BY COUNT(column) DESC/ASC";

首先,这里有个错误

echo "divs in order from least to greatest "number = $num_rows"";
应该是

echo "divs in order from least to greatest number = " . $num_rows . "";
关于评论最多的尝试

$sql = "SELECT * FROM `table` WHERE `id` = '$id' ORDER BY column DESC/ASC";
或者,如果没有计数列,请尝试使用

$sql = "SELECT * FROM `table` WHERE `id` = '$id' ORDER BY COUNT(column) DESC/ASC";

首先,这里有个错误

echo "divs in order from least to greatest "number = $num_rows"";
应该是

echo "divs in order from least to greatest number = " . $num_rows . "";
关于评论最多的尝试

$sql = "SELECT * FROM `table` WHERE `id` = '$id' ORDER BY column DESC/ASC";
或者,如果没有计数列,请尝试使用

$sql = "SELECT * FROM `table` WHERE `id` = '$id' ORDER BY COUNT(column) DESC/ASC";

首先,这里有个错误

echo "divs in order from least to greatest "number = $num_rows"";
应该是

echo "divs in order from least to greatest number = " . $num_rows . "";
关于评论最多的尝试

$sql = "SELECT * FROM `table` WHERE `id` = '$id' ORDER BY column DESC/ASC";
或者,如果没有计数列,请尝试使用

$sql = "SELECT * FROM `table` WHERE `id` = '$id' ORDER BY COUNT(column) DESC/ASC";


您尝试过在查询中使用吗?我不确定如何执行此操作,因为$num_行位于$sql语句之后。理想情况下,我希望使用$sql=“SELECT*FROM'table”,其中'id'='id'按$num_行ASC排序”;但这对当前结构不起作用。您是否尝试在查询中使用过?我不确定如何执行此操作,因为$num_行位于$sql语句之后。理想情况下,我希望使用$sql=“SELECT*FROM'table”,其中'id'='id'按$num_行ASC排序”;但这对当前结构不起作用。您是否尝试在查询中使用过?我不确定如何执行此操作,因为$num_行位于$sql语句之后。理想情况下,我希望使用$sql=“SELECT*FROM'table”,其中'id'='id'按$num_行ASC排序”;但这对当前结构不起作用。您是否尝试在查询中使用过?我不确定如何执行此操作,因为$num_行位于$sql语句之后。理想情况下,我希望使用$sql=“SELECT*FROM'table”,其中'id'='id'按$num_行ASC排序”;但这不适用于当前结构可能会将
SELECT table.id
更改为
SELECT table.id,count(*)as count
,以便能够显示
$row['count']
这是我对$result=mysql\u查询的语句(“从主题中选择*,其中cat\u id='$page'LIMIT$start,$per\u page”);我试图使用$page显示与URL相等的类别的所有主题。也有分页,这就是为什么有一个限制。我想按照评论的数量(最多评论,最少评论)对每个主题进行排序——我是mySQL新手,不知道如何为此编写语句,只是要注意,$result=mySQL\u query($sql)$num_rows=mysql_num_rows($result);使用原始语句显示每个回显中的主题数-注释表使用主题id链接到主题表主题id是注释表中的外键。我有三个表:类别、主题和评论。在psuedo中,我试图计算每个主题id的所有注释,并根据注释计数按ASC或DESC对每个回音进行排序。我已更新查询以尽可能显示实际的表和列,因为您尚未显示第二个查询的详细信息。可能将
SELECT table.id
更改为
SELECT table.id,count(*)作为count
,为了能够显示
$row['count']
这是我对$result=mysql\u查询的语句(“从主题中选择*,其中cat\u id='$page'LIMIT$start,$per\u page”);我试图使用$page显示与URL相等的类别的所有主题。也有分页,这就是为什么有一个限制。我想按照评论的数量(最多评论,最少评论)对每个主题进行排序——我是mySQL新手,不知道如何为此编写语句,只是要注意,$result=mySQL\u query($sql)$num_rows=mysql_num_rows($result);使用原始语句显示每个回显中的主题数-注释表使用主题id链接到主题表主题id是注释表中的外键。我有三个表:类别、主题和评论。在psuedo中,我试图计算每个主题id的所有注释,并根据注释计数按ASC或DESC对每个回音进行排序。我已更新查询以尽可能显示实际的表和列,因为您尚未显示第二个查询的详细信息。可能将
SELECT table.id
更改为
SELECT table.id,count(*)作为count
,为了能够显示
$row['count']
这是我对$result=mysql\u查询的语句(“从主题中选择*,其中cat\u id='$page'LIMIT$start,$per\u page”);我试图使用$page显示与URL相等的类别的所有主题。也有分页,这就是为什么有一个限制。我想要一份e