![イメージ説明]WIDTH:600
お世話になっております。
上記のようなテーブルがあり、これに隔列で色を付けたいと思っています。
それだけなら難しくないのですが、実はテーブルが入れ子になっており、縦一列が一つのテーブルになっています。
横軸は人で、DBから動的に出力しているので、人が増えれば増えます。
出力の際のソースは以下のようになっています。
lang
1//ドライバーIDをkeyにした配列を回して日毎の件数をだす 2foreach($driver AS $key=>$value){ 3 $name = $value; 4 $cnt = ""; 5 $cnt_td = ""; 6 $td = ""; 7 $sum = ""; 8 foreach($dates AS $d_key=>$date){ 9 $td .= "<tr><td>".$date."</td></tr>"; 10 $sql = "SELECT count(*) as cnt, 11 DATE_FORMAT(sales_date,'%Y-%m-%d') AS sdate, 12 sales_reception AS rcpt, 13 sales_date 14 FROM sales 15 WHERE sales_reception = '$key' 16 GROUP BY sales_reception,sdate 17 HAVING sdate = '$date'"; 18 $res = $conDB->query($sql); 19 20 if(!$res){ 21 $cnt[] = 0; 22 }else{ 23 $cnt[] = $res[0]['cnt']; 24 } 25 } 26 foreach($cnt AS $count){ 27 $sum += $count; 28 $cnt_td .= "<tr><td>".$count."</td></tr>"; 29 } 30 31 $html .= "<td><table><tr><td>".$name."</td></tr>".$cnt_td."<tr><td>".$sum."</td></tr></table></td>"; 32} 33 34foreach($dates AS $daily){ 35 $sql = "SELECT count(*) as cnt, 36 DATE_FORMAT(sales_date,'%Y-%m-%d') AS sdate 37 FROM sales 38 GROUP BY sdate 39 HAVING sdate = '$daily'"; 40 $res = $conDB->query($sql); 41 42 if(!$res){ 43 $day_sum = 0; 44 }else{ 45 $day_sum = $res[0]['cnt']; 46 $total += $res[0]['cnt']; 47 } 48 49 $sum_td .= "<tr><td>".$day_sum."</td></tr>"; 50} 51$html .= "<td><table class='bold'><tr><td>日計</td></tr>".$sum_td."<tr><td>".$total."</td></tr></table></td>"; 52 53$date_html = "<td><table width='120px'><tr><td>日付</td></tr>".$td."<tr><td>合計</td></table></td>"; 54 55
この場合、どのような手法を用いればいいのでしょうか?
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/06/02 06:20