原帖:http://topic.csdn.net/u/20120214/16/171276bf-16a7-45a3-8224-fea338db7ee0.html?1686623126
这个帖子不能再回复了,另开一贴:
数据库结构、字段如下图:
要想达到这样的显示效果:
论坛上 jordan102 朋友帮忙写了个查询过程,PHP文件代码如下:
- PHP code
';
while($row = mysql_fetch_assoc($result)){
echo '';
echo "$row[y] ";
foreach(explode(',',$row['str']) as $v);
echo "$v ";
echo " ";
}
echo "";
?>
运行结果不是我想要的,而是下面的结果:
显然数据没有全部列出,请教大家,到底哪里出错!
jordan102 朋友,还在吗?
------解决方案--------------------
数据格式变一下。试试看行不行。
sql语句改为:
select year(add_date) as y,group_concat(yc_jiage) as str,group_concat(day(add_date)) as ss from yc_jiage group by year(add_date)
PHP code
while($row=mysql_fetch_assoc($result)){
$arr[$row[y]]=$row;
}
foreach($arr as $k=>$v){
$s_arr=explode(',',$v[str]);$n_arr=explode(',',$v[ss]);
foreach($n_arr as $k1=>$n)
$tmp[$k][$n]=$s_arr[$k1];
}
echo '';
echo "";
echo "年\月 ";
for($i=1;$i<=12;$i++) echo "{$i}月 ";
echo " ";
foreach($tmp as $k2=>$v){
echo "";
echo ''.$k2.' ';
for($i=1;$i<=12;$i++){
echo "$v[$i] ";
}
echo ' ';
}
echo '
';