gpt4 book ai didi

php - 按百分比分割网站流量

转载 作者:行者123 更新时间:2023-11-30 00:17:15 30 4
gpt4 key购买 nike

我需要根据分配的百分比将流量拆分到多个来源。我想我需要一个像这样的日志表:

表:

+--------+------+----------------------+
| Source | hits | allocated percentage |
+--------+------+----------------------+
| path1 | 50 | 50 |
| path2 | 40 | 40 |
| path3 | 10 | 10 |
+--------+------+----------------------+

我认为逻辑需要循环遍历所有路径并计算当前百分比,然后确定哪一个距离“分配百分比”最远,然后更新表hits=hits+1。我在最后一个比较部分遇到问题。

$overall_hits = $db->getall('Select sum(total_hits) from table');

$source = $db->getall('Select * from table');
foreach($source as $row){

$current_percentage = ($row['total_hits']/$overall_hits)*100;

//how should I compare? what if they are equal?
if($current_percentage < $row['allocated_percentaged'])
{

$chosen_path = $row['source'];
$db->sql("Update table set total_hits=total_hits+1 where source='".$chosen_path."'");
break;

}else{

continue;

}

}

我是否走在正确的轨道上?

最佳答案

假设我理解您想要做什么,您可以在 SQL 中执行所有逻辑检查。

以以下数据为例:

CREATE TABLE t (
source TEXT,
hits INT,
percentage INT
);

INSERT INTO t (source, hits, percentage)
VALUES
('path1', 41, 50),
('path2', 27, 40),
('path3', 3, 10)

您可以简单地对整个表运行查询,以计算每个路径的百分比:

SELECT 
source,
hits,
percentage,
(hits / percentage) * 100
AS current
FROM t
ORDER BY current ASC;

这将为您提供以下结果

SOURCE  HITS    PERCENTAGE  CURRENT
path1 3 10 30
path2 27 40 67.5
path3 41 50 82

然后,您只需将 LIMIT 1 添加到查询末尾即可仅获取 1 个结果。这将为您提供点击数:已分配比率最低的路径。

SOURCE  HITS    PERCENTAGE  CURRENT
path1 3 10 30

您可以在 SQLFiddle here 上看到它的运行情况.

关于php - 按百分比分割网站流量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23555647/

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