gpt4 book ai didi

php - 通过 PDO PHP 统计前 10 篇文章访问者

转载 作者:行者123 更新时间:2023-11-28 23:27:06 26 4
gpt4 key购买 nike

我想知道是否有可能使用 PDO PHP 获取该周(今天和 7 天前之间)查看次数最多的 10 篇文章。

主要问题是在两个单独的表上。主表是文章表。第二张表是按 IP 划分的访问者表。

帖子(文章表):

1.ID (text)

2.TITLE (text)

3.TEXT (text)

访客(柜台):

1.ID (number)

2.IP (text)

3.DATE (TIMESTAMP)

4.ID_POSTS (text)

完整的 php 代码:

$week_start = date('Y-m-d',time()+( 1 - date('w'))*24*3600);  
$week_end = date('Y-m-d',time()+( 7 - date('w'))*24*3600);
$query = "SELECT * FROM visitor WHERE DATE BETWEEN '".$week_start."' AND '".$week_end."' LIMIT 0, 10 ";
$result = $db->prepare($query);
$result->execute();
$i=1;

while($row = $result->fetch(PDO::FETCH_ASSOC)) {
$post[$i]=$row[ID];
$i++;
}

for ($i = 1; $i <= 10; $i++) {
$query = "SELECT * FROM POSTS WHERE ID_POST = '".$post[$i]."' LIMIT 0, 10";
$result = $db->prepare($query);
$result->execute();

while($row = $result->fetch(PDO::FETCH_ASSOC)) {
echo<<<PRINT
$row[ID].$row[TITLE]: $row[text]
PRINT;
}
}

我认为的问题是你必须计算有多少人在 table 上写了次要表然后移动主表。

步骤:1.通过副表统计每篇文章每周有多少人进入2.提取同一周观看次数最多的10个3.主表展示一周阅读量最高的10篇文章

提前致谢。

最佳答案

对于这样的查询,我希望有 COUNT()GROUP BYORDER BYLIMIT 10。因此:

SELECT id_post, COUNT(*) as cnt
FROM visitor v
WHERE DATE BETWEEN '".$week_start."' AND '".$week_end."'
GROUP BY id_post
ORDER BY cnt DESC
LIMIT 0, 10 ;

注意:WHERE 子句始终跟在 FROM 子句之后。

此外,您不应在查询字符串中嵌入日期。您应该学会使用参数。

关于php - 通过 PDO PHP 统计前 10 篇文章访问者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38848893/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com