如何调整脚本以首先选择未调用的潜在客户

时间:2013-03-22 11:35:32

标签: php mysql

我有非常基本的PHP知识,并且已经给这个系统修改。

有一张桌子,其中有销售人员可以致电的专业客户。目前,它从表的开头开始,并按照通常在Mysql中的方式向下运行。

我希望它首先调用所有新记录然后通过旧记录。

我已经尝试过使用ORDER BY lead_id DESC,但这似乎不起作用,还有lead_callcount ASC,但又不起作用。

我一直在查看CASE选项,但我不知道自己使用它。

目前代码

public static function getNextLead(){

    $lead_res = Database::get()->data->query("SELECT `lead_id` FROM `" . DATABASE_TBL_LEADS . "` WHERE (`lead_disposition` IS NULL OR `lead_disposition` = 1) AND (`lead_timeout` IS NULL OR `lead_timeout` < NOW()) AND (`lead_locked` = '0000-00-00 00:00:00' OR `lead_locked` IS NULL) AND `lead_active` = '1' LIMIT 1");
    $lead_num = $lead_res->numRows();

    if($lead_num == 1){

        $lead_get = $lead_res->fetchRow(MDB2_FETCHMODE_ASSOC);

        $lead_id = $lead_get['lead_id'];

下面有更多代码,

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

不知道您正在使用的Database TABLE中的可用列;很难肯定地说。我建议你:

  1. 如果您还没有表格,请获取SCHEMA表
  2. 查看是否有添加潜在客户的日期列
  3. 如果是的话;按该列排序
  4. 由于我们要查看表架构: ORDER BY可以对ASC或DESC的结果集进行排序;默认值为ASC(从最低位置开始,然后从那里开始)。

    据推测,ASC订单应该适用于您的电话帐号;但也许你可以添加lead_timeout,如果这是一个相关值 - 是自上次调用以来的时间吗?

    如果是这样的话可能会有所帮助:

    ORDER BY `lead_callcount` ASC,
             `lead_timeout` ASC
    

    如果最好有更长的(而不是更短的超时),你可以选择将lead_timeout更改为DESC

    我在我的本地数据库中创建了一个测试表,并试用了你提供的查询,其中一个ORDER BY键入了lead_callcount,它似乎工作正常。

    用于检查基本语法和查询结构等内容;上面的查询看起来像这样,添加了ORDER BY:

    SELECT lead_id, lead_callcount, lead_timeout FROM `leads` 
    WHERE (`lead_disposition` IS NULL OR `lead_disposition` = 1) 
      AND (`lead_timeout` IS NULL OR `lead_timeout` < NOW()) 
      AND (`lead_locked` = '0000-00-00 00:00:00' OR `lead_locked` IS NULL) 
      AND `lead_active` = '1'
    ORDER BY `lead_callcount` ASC
            #,`lead_timeout` ASC #optional sort by lead_timeout