2017-01-23 133 views
-1

我一直在編寫代碼來計算在客戶端刷新日期的30天內已建立了多少鏈接,其中構建的鏈接將被存檔。在30天內獲取行,當年是當前年份,月份是當前月份,日期是字符串

我一直在爭取數小時的代碼,試圖讓它只選擇日期在「refreshday」,當前月份和當前年份的30天內的行。

我「refreshdate」列奠定了這樣的:2017年1月11日00:00:00

什麼是應該做的查詢的最佳方式?

$fulldate = $row["refreshdate"]; 


$prcount= mysql_query("SELECT linkid FROM linksbuilt WHERE clientid = '$clientid' and linktype = 'PR' and DATEDIFF(day,'$fulldate',getdate()) < 31 "); 

回答

0

你的問題標記爲「MySQL的」和你正在使用一個MySQL接口(雖然過時,不再獲得支持 - 切換到mysqli_)。那麼,爲什麼你使用SQL Server約定呢?

我想你想查詢的是:

SELECT linkid 
FROM linksbuilt 
WHERE clientid = '$clientid' and 
     linktype = 'PR' and 
     '$fulldate' >= datesub(now(), interval 30 days); 

哦,我提到,你應該使用常量「mysqli_」界面和使用參數查詢,而不是改寫(munging)查詢字符串。

+0

感謝您的快速響應! 對不起,如果我是一個小白點,但我剛開始學習PHP我的計劃是寫在MySQL中,因爲它有更多的支持,然後將其轉換爲mysqli_一旦項目完成。 我試過你提供的SQL查詢,但它似乎沒有工作,是查詢得到當前的年份和月份,然後使用從$ fulldate這一天,像這樣yyyy/mm/$ fulldate –

+1

@ Harry-Robinson放棄計劃。學習mysqli和/或PDO – Strawberry

+0

@ Harry-Robinson。 。 。如果您正在學習PHP和MySQL,請正確學習。這將是mysqli_界面。 –

相關問題