-1

毎週、毎月、毎年閲覧できるレポートを作りたいです。

例:誰が毎週登録したか、または誰が今月または今年に登録したか、また支払いについて確認したい。この6月に登録者に会いたいです。ドロップダウン検索を使用して、この2010年の登録者を確認したいと思います。

//これは、先週登録した学生に会いたい週報のコードですが、コードが正しいかどうかわかりません。

$datetoday=date("Y-m-d");
$result = mysql_query("
     SELECT enrollee_info.*, payments.* from enrollee_info 
 INNER JOIN payments on payments.enrollee_id=enrollee_info.e_id 
      WHERE enrollee_info.category='Walk In' 
       AND DATE_FORMAT(payments.entrydate , %Y-%m-d')>=SUBDATE('".$datetoday."' , INTERVAL 7 DAY)");

月次および年次の場合、たとえば、今月の登録者などを確認したり、検索する月または年を選択できるドロップダウンを使用して、今年の登録者を確認したりします。

4

1 に答える 1

5

の許容単位については、マニュアルを参照してくださいINTERVAL。スイッチを使用するだけで、レコードの範囲を決定できます。

ドロップダウンには、週、月、または年があります。その後、スイッチを使用してステートメントを準備できます。

$sql = "SELECT enrollee_info.*, 
   payments.* 
FROM   enrollee_info 
       INNER JOIN payments 
               ON payments.enrollee_id = enrollee_info.e_id 
WHERE  enrollee_info.category = 'Walk In' 
       AND payments.entrydate >= Subdate(Curdate(), ";

switch ($range) {
    case "month":
        $sql .= 'INTERVAL 1 MONTH';
        break;
    case "year":
        $sql .= 'INTERVAL 1 YEAR';
        break;
    //if no match, use week
    default:
        $sql .= 'INTERVAL 1 WEEK';
}

$sql .= ')';

次のようなステートメントを作成します。

SELECT enrollee_info.*, 
       payments.* 
FROM   enrollee_info 
       INNER JOIN payments 
               ON payments.enrollee_id = enrollee_info.e_id 
WHERE  enrollee_info.category = 'Walk In' 
       AND payments.entrydate >= Subdate(Curdate(), INTERVAL 1 week) 

可能であれば、各テーブルからすべての列を取得することを避け、列リストを使用してください。

于 2013-03-06T01:02:00.557 に答える