这几天我一直在处理这个项目。我不知道这段代码的错误是什么,我应该用什么方法让我的代码更好,我的朋友告诉我应用数组,但我不熟悉那种方法,我试图在几天内研究和研究,但它不工作。我需要的是制作一个计算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会强制一切(所有字段)都是时间戳 - 我想它会给你一个错误 –