Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 组合2个SQL查询并按视图在列表中输出_Php_Mysql - Fatal编程技术网

Php 组合2个SQL查询并按视图在列表中输出

Php 组合2个SQL查询并按视图在列表中输出,php,mysql,Php,Mysql,我得到了这个小代码: $querym = mysql_query("SELECT count(*), videoid FROM daystat_movies WHERE date >= now() - INTERVAL 1 DAY GROUP by videoid DESC"); while ($qshow = mysql_fetch_array($querym)) { $videoid[1] = $qshow[videoid]; $date[1] = $qshow[date]; $q

我得到了这个小代码:

$querym = mysql_query("SELECT count(*), videoid
FROM daystat_movies WHERE date >= now() - INTERVAL 1 DAY GROUP by videoid DESC");

while ($qshow = mysql_fetch_array($querym)) {
$videoid[1] = $qshow[videoid];
$date[1] = $qshow[date];

$queryc = mysql_query("SELECT * FROM daystat_movies WHERE date >= now() - INTERVAL 1 DAY AND videoid='$videoid[1]'");
$views[1] = mysql_num_rows($queryc);

echo "<tr><td>$videoid[1]</td> <td> $views[1] </td></tr>";

}

我现在想要的是在列表顶部显示具有最多视图的视频id(在本例中为100个视图,共4个视图)。

您可以在ORDER BY子句中使用聚合函数(如
count(*)
)。由于您选择了
count(*)
,因此也不需要在while循环中执行大量查询,只需获取行数,您应该已经知道了行数。因此,完整的代码可能是:

$querym = mysql_query("
    SELECT count(*) as cnt, videoid
    FROM daystat_movies
    WHERE date >= now() - INTERVAL 1 DAY
    GROUP by videoid
    ORDER BY cnt DESC
");

while ($qshow = mysql_fetch_array($querym)) {
   echo "<tr><td>{$qshow['videoid']}</td><td>{$qshow['cnt']}</td></tr>";
}
$querym=mysql\u查询(“
选择count(*)作为cnt,videoid
来自daystat_电影
其中日期>=现在()-间隔1天
按videoid分组
按cnt DESC订购
");
而($qshow=mysql\u fetch\u数组($querym)){
echo“{$qshow['videoid']}{$qshow['cnt']}”;
}

我还建议从PHP7mysql库中过时的、不推荐使用的和已经删除的库切换到mysqliPDO尝试的
orderbycount(*)DESC
?这是否回答了您的问题?非常感谢,先生!你将进入我的传奇列表:)。。我的编码已经过时了是的我知道。。几年前我就开始玩编码了。。猜猜是时候阅读一些教程等,并赶上了!但这正是我想要做的,它工作得非常完美!
$querym = mysql_query("
    SELECT count(*) as cnt, videoid
    FROM daystat_movies
    WHERE date >= now() - INTERVAL 1 DAY
    GROUP by videoid
    ORDER BY cnt DESC
");

while ($qshow = mysql_fetch_array($querym)) {
   echo "<tr><td>{$qshow['videoid']}</td><td>{$qshow['cnt']}</td></tr>";
}