這幾天我一直在處理這個項目。我不知道這段代碼的錯誤是什麼,我應該用什麼方法讓我的代碼更好,我的朋友告訴我應用數組,但我不熟悉那種方法,我試圖在幾天內研究和研究,但它不工作。我需要的是製作一個計算1,2,3,4和5級的程序,並顯示例如在1月,2月,3月,5月,5月,6月,6月,8月有多少數據(行) ,sep,oct,nov和dec,在這個示例代碼中,我只顯示過濾級別5,因爲我不想讓這個讀者感到困惑。感謝你們 :-(使用php和mysql進行數據過濾
這是我的樣品臺
Table: sample
+-------------+------------------+-----------+
| date | level | id |
+-------------+------------------+-----------+
| 2012-03-01 | 4 | 1 |
| 2012-02-02 | 1 | 2 |
| 2012-04-03 | 4 | 3 |
| 2012-05-14 | 1 | 4 |
| 2010-01-05 | 5 | 5 |
| 2009-01-05 | 2 | 6 |
| 2008-01-05 | 3 | 7 |
| 2012-02-02 | 1 | 8 |
| 2012-06-03 | 4 | 9 |
| 2012-07-14 | 1 | 10 |
| 2010-01-05 | 5 | 11 |
| 2009-01-05 | 2 | 12 |
| 2012-08-05 | 3 | 13 |
+-------------+------------------+-----------+
此查詢按日期選擇了2012年和訂單的所有數據
$query = mysql_query("select * from table where year(date)='2012' order by date");
This while loop gene評價$ query所喜歡的所有記錄。在循環中有HOPING條件,它用全部5個LEVEL過濾記錄...當數據(由$ query生成)是5級時,$ level5將增加1,然後該數據將轉到另一個if語句確定數據(由$查詢生成)屬於哪個月,假設數據是2012-05-14,那麼數據將在if語句中進行if(Date_format($ ii ['date'],'%m')) )== 05)和1,之後增加了$ level5_may ...
while($ii=mysql_fetch_array($query))
{
if($ii['level']==5)
{
$level5++;
if(Date_format($ii['date'],'%m'))==1)
{
$level5_jan++;
}elseif(Date_format($ii['date'],'%m'))==02)
{
$level5_feb++;
}elseif(Date_format($ii['date'],'%m'))==03)
{
$level5_mar++;
}elseif(Date_format($ii['date'],'%m'))==04)
{
$level5_apr++;
}elseif(Date_format($ii['date'],'%m'))==05)
{
$level5_may++;
}elseif(Date_format($ii['date'],'%m'))==06)
{
$level5_jun++;
}elseif(Date_format($ii['date'],'%m'))==07)
{
$level5_jul++;
}elseif(Date_format($ii['date'],'%m'))==08)
{
$level5_aug++;
}elseif(Date_format($ii['date'],'%m'))==09)
{
$level5_sep++;
}elseif(Date_format($ii['date'],'%m'))==10)
{
$level5_oct++;
}elseif(Date_format($ii['date'],'%m'))==11)
{
$level5_nov++;
}elseif(Date_format($ii['date'],'%m'))==12)
{
$level5_dec++;
}
}
}
結果0的這部分代碼現在將收集的if語句
echo"
number of 5 stars: $level5 <br>
jan:$level5_jan <br>
feb:$level5_feb <br>
mar:$level5_mar <br>
apr:$level5_apr <br>
may:$level5_may <br>
jun:$level5_jun <br>
jul:$level5_jul <br>
aug:$level5_aug <br>
sep:$level5_sep <br>
oct:$level5_oct <br>
nov:$level5_nov <br>
dec:$level5_dec <br>
";
虐待測試你的代碼F.Müller –
我可以改變它到這個「SELECT * AS UNIX_TIMESTAMP(日期)從表WHERE年(日期)= '2012'ORDER BY date「 –
不,你不能這樣做,因爲sql會強制一切(所有字段)都是時間戳 - 我想它會給你一個錯誤 –