2017-02-18 6 views
-1

過去14日間に注文しなかった顧客のレコードのみを表示したいとします。 したがって、現在の日付から最後の注文日を差し引いて、14日以上経過してから注文しなかったユーザーのみを表示する必要があります。日付の形式は次のようにデータベースにソートすることを 注:2017年1月25日 はここに私のコードです:すべての最新の日付と最新の日付との差=日付の数字を表示する方法

<?php 
$q_customer = $conn->query("SELECT * FROM customer_order INNER JOIN customer on customer_order.phone= customer.phone GROUP BY customer_order.phone") or die(mysqli_error()); 
while($f_customer = $q_customer->fetch_array()){ 
?> 
<tr> 
    <td><?php echo $f_customer['phone']?></td> 
    <td><?php echo $f_customer['first_name']?></td> 
    <td><?php echo $f_customer['last_name']?></td> 
    <td><?php echo $f_customer['order_date']?></td> 

</tr> 

<?php 
} 
?> 
+0

役立つかもしれないそれとも、14日前の日付を見つけて、そのように、これはどのようにすることができ、その日 – Fallen

+0

後に注文しなかったすべての顧客を照会することができますexcuted? –

+0

お客様は何度も注文することがありますが、最後の注文が14日以上前の場合は顧客を表示する必要があります –

答えて

0

まず、あなたは日に受注日のデータ型を変更する必要があります。あなたは、次の構文でこれを行うことができます :

ALTER TABLE tablename 
MODIFY COLUMN orderdate DATE NOT NULL; 

次に、あなたは14日の間隔を作成して、現在の日付からそれを減算する必要があります。 コードはこちらに記載されています。

&lt;?php 
    $date = new DateTime(Date('Y-m-d')); // storeing current date in a variable. 
    $interval = new DateInterval('P14DS'); 
    $date-&gt;sub($interval); 
    // now extract date from database and compare this like 
    if($date-&gt;format('Y-m-d') &lt;= $f_customer['order_date']){ 
      // do stuff..... 
    } 
?&gt; 

これらのリンクは

http://php.net/manual/en/class.datetime.php

+0

日付の種類を変更した後、保存されているすべての日付が0000-00-00に変換されました:( –

+0

日付を保存した形式 – iNullPointer

+0

@Sally Bulbul形式の日付はYYYY-MMです。 -DD – iNullPointer

関連する問題