1

私は非常に基本的な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'];

その下にさらにコードがあります、

よろしくお願いします。

4

1 に答える 1

0

作業しているデータベース TABLE で使用可能な列を知らなくても; 確かに言うのは難しいです。私はあなたをお勧めします:

  1. テーブル SCHEMA をまだ取得していない場合は取得します
  2. リードが追加された日付の列があるかどうかを確認します
  3. もしそうなら; ORDER BY その列

確認するテーブル スキーマがあるため、 ORDER BY は ASC または DESC のいずれかで結果セットを並べ替えることができます。デフォルト値は ASC (最低値から開始し、そこから増加) です。

おそらく、ASC オーダーは callcount で機能するはずです。しかし、それが関連する値である場合は、lead_timeout を追加することもできます。最後の呼び出しからの時間ですか?

もしそうなら、このようなものが役立つかもしれません:

ORDER BY `lead_callcount` ASC,
         `lead_timeout` ASC

(タイムアウトを短くするよりも)長くした方がよい場合は、オプションで lead_timeout を DESC に変更できます。

I created a test table in my local database and tried out the query you provided with an ORDER BY keyed off of the lead_callcount and it seemed to work okay.

For purposes of checking things like basic syntax and query structure; your above query would look like this with the ORDER BY added:

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
于 2013-03-22T11:43:57.490 に答える