2012-01-03 51 views
0

我需要一個PHP函數,可以隨機選擇一個具有unix時間日期字段的行(如2011-11-12或2011-12- 24)表示該行是在mySQL表的最後兩週內創建的,並返回該行的標識。PHP函數隨機選擇一個mySQL行與Unix日期少於兩週

我不知道這是怎麼回事。老實說,我希望有人把代碼提交給我,但我不喜歡那樣,因爲大多數人不喜歡那樣..而他們的理由是有道理的,但是如果有人會告訴我代碼,那麼請做,因此可以至少有人指向正確的方向?謝謝。

回答

0

您可以通過使用datestrtotime獲取日期:

$date = date('Y-m-d', strtotime("-2 weeks")); 

那麼查詢會是這個樣子:

SELECT * FROM table WHERE date_field >= '$date' ORDER BY RAND() LIMIT 1; 

ORDER BY RAND()給你一個隨機行。

strtotimehttp://us3.php.net/manual/en/function.strtotime.php

希望這有助於。 :)

+0

好的,謝謝,我想出了這個代碼:'require(「cms/connection.php」); $ date = date('Y-m-d',strtotime(「 - 2 weeks」)); $ result = mysql_query(「SELECT * FROM articles WHERE publicationDate> ='$ date'ORDER BY RAND()LIMIT 1」); while($ row = mysql_fetch_array($ result)){echo「Title:」。 $ row ['title']。 「
」;回聲「標題:」。 $ row ['caption']。 「
」; }回聲「結束」; mysql_close($ connection);'有問題。它給了我這個錯誤:mysql_fetch_array():提供的參數不是有效的MySQL結果資源。我認爲結果是錯誤的,但我找不到錯誤。 – MindMaster 2012-01-03 21:37:38

+0

我發現了一些錯誤,所以我修復了它們。這是我修改的代碼:$ date = date('Y-m-d',strtotime(「 - 2 weeks」)); $ result = mysql_query(「SELECT * FROM'articles' where'publicationDate'> ='$ date'ORDER BY RAND()LIMIT 1;」); while($ row = mysql_fetch_array($ result))但是我仍然收到相同的錯誤信息。 – MindMaster 2012-01-03 22:16:01

+0

嗯。我建議打印出mysql_error(),看看錯誤是什麼。在調用mysql_query()之後,你會這樣做。 – letuboy 2012-01-05 18:22:26