SHOW:
|
|
- or go back to the newest paste.
| 1 | - | <?php |
| 1 | + | <pre><?php |
| 2 | // Create connection | |
| 3 | $con=mysqli_connect("localhost","root","","ci");
| |
| 4 | ||
| 5 | //Получаем метку даты 30 дневной давности о оформляем его в удобовариемый mysql-ем вид | |
| 6 | $last30d=date("c",strtotime("-30 day"));
| |
| 7 | ||
| 8 | - | //Делаем выборку событий из базы старше нужного |
| 8 | + | //Делаем выборку событий из базы старше нужного. Дату обрезаем до дня и конвертируем в таймштамп. |
| 9 | - | $sql = "SELECT * , SUM(value), DATE_FORMAT(`time_added`,'%Y-%m-%d') FROM `stats` WHERE time_added>'$last30d' GROUP BY DAY(`time_added`)"; |
| 9 | + | $sql = "SELECT * , SUM(value), UNIX_TIMESTAMP(DATE_FORMAT(time_added, \"%Y-%m-%d\")) FROM `stats` WHERE time_added>'$last30d' GROUP BY DAY(`time_added`)"; |
| 10 | $res=mysqli_query($con,$sql); | |
| 11 | while($row=mysqli_fetch_array($res, MYSQLI_ASSOC)) {
| |
| 12 | // убираем громоздкие имена ячеек массива с таймштампом | |
| 13 | - | } |
| 13 | + | $row['timestamp']=$row['UNIX_TIMESTAMP(DATE_FORMAT(time_added, "%Y-%m-%d"))']; |
| 14 | unset($row['UNIX_TIMESTAMP(DATE_FORMAT(time_added, "%Y-%m-%d"))']); | |
| 15 | ||
| 16 | $days[] = $row; | |
| 17 | }//print_r($days); | |
| 18 | ?> | |
| 19 | </pre> | |
| 20 | ||
| 21 | <script type="text/javascript" src="https://www.google.com/jsapi"></script> | |
| 22 | <script type="text/javascript"> | |
| 23 | // Load the Visualization API library and the piechart library. | |
| 24 | google.load('visualization', '1.0', {'packages':['corechart']});
| |
| 25 | google.setOnLoadCallback(drawChart); | |
| 26 | // ... draw the chart... | |
| 27 | ||
| 28 | function drawChart() {
| |
| 29 | // Create the data table. | |
| 30 | - | foreach($days as $key=>$day) {
|
| 30 | + | |
| 31 | - | list($y,$m,$d)=explode("-",$day['DATE_FORMAT(`time_added`,\'%Y-%m-%d\')']);
|
| 31 | + | |
| 32 | - | $m--; //потому что в JS месяцы нумеруются от нуля |
| 32 | + | |
| 33 | - | echo "[new Date($y, $m, $d), {$day['SUM(value)']}],\n";
|
| 33 | + | |
| 34 | <? | |
| 35 | foreach($days as $day) {
| |
| 36 | echo "[new Date({$day['timestamp']}*1000), {$day['SUM(value)']}],\n";
| |
| 37 | } | |
| 38 | ?> | |
| 39 | ]); | |
| 40 | var options = {
| |
| 41 | 'title' : 'Поисковых запросов, в день:', | |
| 42 | 'width' : 900, | |
| 43 | 'height' : 200, | |
| 44 | 'legend' : {
| |
| 45 | 'position':'none' | |
| 46 | }, | |
| 47 | 'titleTextStyle':{
| |
| 48 | 'fontName' : 'Georgia', | |
| 49 | 'fontSize' : 20, | |
| 50 | 'bold' : false}, | |
| 51 | chartArea: {
| |
| 52 | width: '100%' | |
| 53 | }, | |
| 54 | vAxis: {
| |
| 55 | textPosition: 'in', | |
| 56 | minValue: 0 | |
| 57 | }, | |
| 58 | }; | |
| 59 | ||
| 60 | // Instantiate and draw our chart, passing in some options. | |
| 61 | var chart = new google.visualization.AreaChart(document.getElementById('chart_div'));
| |
| 62 | chart.draw(data, options); | |
| 63 | } | |
| 64 | </script> | |
| 65 | <div id="chart_div" style="width: 900px; height: 200px;"></div> |