2012-01-04 14 views
0

最新の管理者メモを表示しているテーブルがあります。私は最後の3音だけを表示しています。私はデータベースにDATETIMEを保存しています。私がしたいことは、このdatetimeが3日未満の場合はと言うことができ、この新しいテキストを表示します。すべての3冊のノートが同じ日にある場合PHP MySQLの取り扱いDATETIME

は今、私は新しいテキストを表示するだけで最新のものにしたい、ここですべての3

は私のPHPではありません。

<?php 
    if ($stmt = $mysqli->prepare("SELECT note, date_posted, admins.first_name, admins.last_name FROM admin_notes INNER JOIN admins ON admin_notes.admin_id = admins.admin_id ORDER BY date_posted DESC LIMIT 3")) { 

     $stmt->execute(); 
     $stmt->bind_result($note_text, $note_date, $note_fname, $note_lname); 
     $stmt->store_result(); 

     while ($stmt->fetch()) { 
      echo "<tr><td class=\"full\">$note_text<br /><span class=\"from\">".timesince($note_date)." by <strong>$note_fname $note_lname</strong></span></td></tr>"; 
     } 
    } 
?> 

誰でも助けることができます私はこれを達成する?

に触発
+0

'timesince()' return * New *またはこれを出力しますか?あなたは正確な質問は不明です。 –

答えて

3
$past = new DateTime('-3 days'); 

// later 
$note_datetime = new DateTime($note_date); 

if ($note_datetime >= $past) echo 'new'; 

rkosegiの答えを(その間には削除):あなたは

SELECT note, date_posted, admins.first_name, admins.last_name, (DATEDIFF(NOW(),`date_posted`) < 3) AS isNew FROM [..] 

にクエリを変更することができます今、あなたは新しい「行」isNewを取得し、それは、オーデル0のいずれかである1

+0

あなたの答えをありがとう。私はPHPのトップ部分を稼働させることができませんでした.3日前の最後のものは「新」、1日と2日前の他の2つは表示されませんでした。 – Drew

+0

クエリについては、最新の1つの番組だけをNEWにする方法はありますか? 3日以上経っていなくても、1つ以上のNEWを常に表示する必要はありません。 – Drew

+0

最初のコメント:明らかに、それは '> ='ではなく、 '<='でなければなりません。私のせい。 2番目のコメント:UNIONなし(ここでは少し大きめです)とは思いません。 – KingCrunch