차트관련 문의 도움부탁드립니다.
본문
차트 구현방법은 여러 자료들을 토대로 작업을해서 출력은 잘 되었는데요
잘 안되는 부분이 있어 이렇게 문의드립니다.
사용한 소스는 아래와 같습니다.
<?php
$max = 0;
$sum_count = 0;
$arr = array();
$sql = " select * from {$g5['visit_table']}
where vi_date between '$fr_date' and '$to_date' ";
$result = sql_query($sql);
while ($row=sql_fetch_array($result)) {
$s = $row['vi_device'];
if(!$s)
$s = '기타';
if( isset($arr[$s]) ){
$arr[$s]++;
} else {
$arr[$s] = 1;
}
if ($arr[$s] > $max) $max = $arr[$s];
$sum_count++;
}
?>
<script>
$(function(){
$("#doughnutChart_device").drawDoughnutChart([
<?php
$i = 0;
$k = 0;
$save_count = -1;
$tot_count = 0;
if (count($arr)) {
arsort($arr);
foreach ($arr as $key=>$value) {
$count = $arr[$key];
if ($save_count != $count) {
$i++;
$no = $i;
$save_count = $count;
} else {
$no = '';
}
if (!$key) {
$key = '기타';
}
$rate = ($count / $sum_count * 100);
$s_rate = number_format($rate, 1);
?>
{ title:"<?php echo $key; ?>", value:<?php echo $count ?>, color:"#03a9f5" },
<?php
}
}
?>
]);
});
</script>
질문1. { title:"<?php echo $key; ?>", value:<?php echo $count ?>, color:"#03a9f5" },
위의 부분에서 $key 변수에 따라 color 값이 변경이 되어야 하는데 차트에서 동일하게 아래와 같이 color값이 표시가 됩니다.
{ title:"pc", value:4, color:"#03a9f5" },
{ title:"mobile", value:1, color:"#03a9f5" }, --> color:"#616c77" 이렇게 변경이 되야 하거든요
컬러값은 css 에 아래와 같이 정의 되어 있습니다.
#main_access_device ul li.pc:before{background-color:#03a9f5}
#main_access_device ul li.mobile:before{background-color:#616c77}
pc ($key 변수값), mobile ($key 변수값) 입니다.
어디를 어떻게 수정을 해야 color 값을 다르게 할 수 있는지요?
질문2. 현재날짜를 기준으로 이전 3일간, 또는 7일간의 데이터를 출력하려면 어떠한 형식으로 코드를 적용해야 할까요?
너무 초보자 이다 보니 방법을 잘 모르겠습니다.
고수님들의 도움 부탁드리겠습니다.
오늘 하루도 즐거운 하루 되세요~^^
!-->답변 1
<?php
$max = 0;
$sum_count = 0;
$arr = array();
$sql = " select * from {$g5['visit_table']}
where vi_date between '$fr_date' and '$to_date' ";
$result = sql_query($sql);
while ($row=sql_fetch_array($result)) {
$s = $row['vi_device'];
if(!$s)
$s = '기타';
if( isset($arr[$s]) ){
$arr[$s]++;
} else {
$arr[$s] = 1;
}
if ($arr[$s] > $max) $max = $arr[$s];
$sum_count++;
}
?>
<script>
$(function(){
$("#doughnutChart_device").drawDoughnutChart([
<?php
$i = 0;
$k = 0;
$save_count = -1;
$tot_count = 0;
if (count($arr)) {
// 색깔배열지정
$arr_colors = array("#03a9f5","#616c77");
// 증가 idx 값
$idx = 0;
arsort($arr);
foreach ($arr as $key=>$value) {
$count = $arr[$key];
if ($save_count != $count) {
$i++;
$no = $i;
$save_count = $count;
} else {
$no = '';
}
if (!$key) {
$key = '기타';
}
$rate = ($count / $sum_count * 100);
$s_rate = number_format($rate, 1);
?>
{ title:"<?php echo $key; ?>", value:<?php echo $count ?>, color:"<?=$arr_colors[$idx]?>" },
<?php
// idx++
$idx++;
}
}
?>
]);
});
</script>
2번
최근 7일 날짜 구하기
$sql = " select * from {$g5['visit_table']} where vi_date >= '".date("Y-m-d",strtotime("-7 days") ) ."' ";
!-->