2015-03-13 92 views
-1

我正在创建着陆页。所有进入我的数据库的线索。我想从我的数据库获取线索,并送他们出去2个电子邮件循环系统php和mysql

例如像这样

铅1 - >我的电子邮件
导致2 - >我的员工
导致3 - >我的电子邮件
铅4 - >我的员工
导致5 - >我的电子邮件
导致6 - >我的员工

任何想法如何,我将开始?你如何建议我设置我的数据库?

+1

我不知道你在说什么。你试过的任何代码?你有什么尝试?什么是输入,什么是预期输出? – 2015-03-13 16:48:30

+0

在某个地方(例如在数据库中)存储正在进行的铅计数。然后你可以发送到'$ count%2',它会给你一个'0/1'值来选择发送邮件的人。 – halfer 2015-03-13 17:18:07

回答

0

您只需使用一个随机数发生器(例如mt_rand)来生成0(您)和1(您的雇主)之间的数字。如果你有更多的员工,那么只需增加最大数量。

在你的数据库,添加一个名为“受让人”或其他任何列,而当你存储的电子邮件还添加随机数。例如:

// Number of employees, excluding you 
$employees = 1; 

$stmt = $dbh->prepare("INSERT INTO emails (email, assignee) VALUES (:email, :assignee)"); 
$stmt->bindParam(':email', '[email protected]'); 
$stmt->bindParam(':assignee', mt_rand(0, $employees)); 

表将随后样子:

email    | assignee 
-------------------------------- 
[email protected] |  0 
-------------------------------- 
[email protected] |  1 
-------------------------------- 
[email protected] |  1 

当您选择的记录,那些受让人= 1分配给你的员工,和那些与受让人= 0是你的。

注意:这种方法是最简单的方法。它不会返回0-1的确切顺序,但如果您有N封电子邮件,则平均有50%会分配给您,50%会分配给您的员工(对于“大数定律”),你会达到你的目标!

0

这是分配,你可能想在你的数据库来处理这个问题的方法是用令牌列,此令牌列可存储1或0,1,如果你是最后一个人获得了领先优势。令牌在人接收领先时获得通过。

现在这种类型的方法的固有问题是,在高需求的环境中读取和写入,如果不是连续发生可能会导致您的线索不正确的分布。

所以,你可能想要做这样的事情处理这种读取和令牌更新连续或者如果你的数据库系统处理它的函数或方法,通过更新select语句相同的查询中。

另一种方式来处理它 - 是整体分布引线的数量始终选择已收到线索量最少的人。根据你要做什么,有很多方法可以做到这一点。

希望这会有所帮助!

编辑:另外,如果你有一个领导,你可以存储你的用户或员工ID,无论您存储用户,您的铅 - 这将让你看到哪些人收到导致。