+ -
当前位置:首页 → 问答吧 → PHP循环输出到表格问题。

PHP循环输出到表格问题。

时间:2011-10-11

来源:互联网

现在数据库中有一个paper表,里面有id,title,year三个字段,现在我想按year分类,把他们输出到表格。最终效果如下:


2008年 2009年 2010年 2011年
title0 title0 title0 title0
title1 title1 title1 title1
title2 title2 title2 title2
title3 title3 title3 title3
title4 title4 title4 title4

数据库查询语句应该怎么写,然后再怎样循环输出到表格?

作者: doraprince   发布时间: 2011-10-11

这个简单点法子就是直接将数据读取出来,然后对数据进行一下处理,如果用SQL来完成分类操作,会影响性能,

作者: TottyAndBaty   发布时间: 2011-10-11

能不能给出详细代码呢?

作者: doraprince   发布时间: 2011-10-11

试试这样行不? 里面<tr></tr>换行的部分需要完善


PHP code


SELECT year FROM paper WHERE 条件 GROUP BY year ORDER BY year ASC;
取出year
例如: $arr_year=array('2008','2009','2010','2011',);

SELECT title,year FROM paper WHERE 条件 ORDER BY title ASC,year ASC;
这样取出的数据应该是这样的:
$data=array(
0=>array('title'=>'title0','year'=>'2008'),
1=>array('title'=>'title0','year'=>'2009'),
2=>array('title'=>'title0','year'=>'2010'),
3=>array('title'=>'title0','year'=>'2011'),
4=>array('title'=>'title1','year'=>'2008'),
5=>array('title'=>'title1','year'=>'2009'),
6=>array('title'=>'title1','year'=>'2010'),
....
);
<table>
<tr>
<?php
foreach($arr_year as $year)
{
    echo '<td>'.$year.'年</td>';
}
?>
</tr>

<tr>
<?php
$i=1;
foreach($data as $r)
{
    foreach($arr_year as $year)
   {
      if($year==$r['year'])
      {
         echo '<td>'.(empty($r['title'])?'&nbsp;':$r['title']).'</td>';
         break;
      }
   }
   if($i%count($arr_year)==0) echo '</tr><tr>';
   $i++;
}
?>
</tr>
</table

作者: sink   发布时间: 2011-10-11

相关阅读 更多