2017-03-04 8 views
0

私はテーブルメッセージを持っています。フィールドは:id、username、message、lastdateです。私はこれらの日付(私のテーブルにある)と現在の日付を比較したいと思います。差異が30日の場合、管理者ページに尊重されたユーザー名が表示されます。 私は日付の違いを試しましたが、動作しません。指定された日付と現在の日付との間の差異

<?php 
    include("connection.php"); 
    $queryd=mysql_query("select * from message") or die(mysql_error()); 
    while($resultd=mysql_fetch_array($queryd)) 
    { 
    extract($resultd); 
    $date1=date('Y-m-d'); 
    $date2=$lastdate; 

    $diff=date_diff($date2,$date1); 
    echo $diff->format("%R%a days"); 
    } 
     ?> 

また、このコードから試しました。しかし、何も私の第三ソリューションはここにある

<?php 
    include("connection.php"); 
    $queryd=mysql_query("select * from message") or die(mysql_error()); 
    while($resultd=mysql_fetch_array($queryd)) 
    { 
    extract($resultd); 
    $date1=date('Y-m-d'); 
    $date2=$lastdate; 


    $query12=mysql_query("SELECT username,DATEDIFF($date1,$date2) FROM message WHERE DATEDIFF($date1,$date2)<30") or die(mysql_error()); 
    while($result12=mysql_fetch_array($query12)) 
    { 
     if($result12) 
    echo $username; 
    else 
    echo"record not"; 
    } 
    } 
? 

を起こっていません。私はそれが働いていると思う。しかし、それは繰り返される値です。

<?php 
    include("connection.php"); 
    $queryd=mysql_query("select * from message") or die(mysql_error()); 
    while($resultd=mysql_fetch_array($queryd)) 
    { 
    extract($resultd); 
    $date1=date('Y-m-d'); 
    $date2=$lastdate; 
    $days = (strtotime($date2) - strtotime($date1))/(60 * 60 * 24); 

    $result123=mysql_query("select username from message where '$days'<30"); 
    while($query123=mysql_fetch_array($result123)) 
    { 
if($query123) 
echo $username."&nbsp".$days."<br>"; 
else 
echo mysql_error(); 
    } 
    } 

?> 
+0

あなたは正しい$ lastdateをお持ちですか?チェックのためにvar_dump($ lastdate)を試してください – scaisEdge

答えて

1

MySQL DBMSでこの日付の比較を行うことができます。

は、この文字列で検索してください:

 SELECT username, message FROM message WHERE lastdate <= CURDATE() - INTERVAL 30 DAY 

それは興味のある行だけを返す必要があります。

+0

ありがとうございました....エラーが見つかりました... ...あなたのSQL構文に誤りがあります。あなたのMariaDBサーバのバージョンに対応するマニュアルをチェックして、正しい構文が「FROM message WHERE lastdate <= CURDATE() - INTERVAL 30 DAY」の1行目 –

関連する問題