Stack Overflow em Português Asked by Wanderson Borges on September 27, 2021
Tenho este código em PHP e JS que busca no BD as visitas que o site X recebeu no mês atual e joga em um gráfico do Google Charts.
Apesar de estar funcional e me servir bem até então, eu fico incomodado com a aparência e o tamanho disto e gostaria muito de saber se teria alguma forma melhor de executar essa mesma tarefa com um código bem mais limpo e inteligente.
Desde já agradeço qualquer contribuição.
Segue abaixo trecho em PHP:
<?php
$meses = array(
'01'=>'Janeiro',
'02'=>'Fevereiro',
'03'=>'Março',
'04'=>'Abril',
'05'=>'Maio',
'06'=>'Junho',
'07'=>'Julho',
'08'=>'Agosto',
'09'=>'Setembro',
'10'=>'Outubro',
'11'=>'Novembro',
'12'=>'Dezembro'
);
$mes_atual_nome = $meses[date('m')];
$mes_atual = date('m');
$ano_atual = date('Y');
$ReadViewsDia_1 = ExeRead("pageviews WHERE pageview_dia = '01' AND pageview_mes = '$mes_atual' AND pageview_ano = '$ano_atual'");
$numViewsDia_1 = mysqli_num_rows($ReadViewsDia_1);
if ($numViewsDia_1 > 0): $TotalViewsdia_1 = $numViewsDia_1; else: $TotalViewsdia_1 = '0'; endif;
$ReadViewsDia_2 = ExeRead("pageviews WHERE pageview_dia = '02' AND pageview_mes = '$mes_atual' AND pageview_ano = '$ano_atual'");
$numViewsDia_2 = mysqli_num_rows($ReadViewsDia_2);
if ($numViewsDia_2 > 0): $TotalViewsdia_2 = $numViewsDia_2; else: $TotalViewsdia_2 = '0'; endif;
$ReadViewsDia_3 = ExeRead("pageviews WHERE pageview_dia = '03' AND pageview_mes = '$mes_atual' AND pageview_ano = '$ano_atual'");
$numViewsDia_3 = mysqli_num_rows($ReadViewsDia_3);
if ($numViewsDia_3 > 0): $TotalViewsdia_3 = $numViewsDia_3; else: $TotalViewsdia_3 = '0'; endif;
$ReadViewsDia_4 = ExeRead("pageviews WHERE pageview_dia = '04' AND pageview_mes = '$mes_atual' AND pageview_ano = '$ano_atual'");
$numViewsDia_4 = mysqli_num_rows($ReadViewsDia_4);
if ($numViewsDia_4 > 0): $TotalViewsdia_4 = $numViewsDia_4; else: $TotalViewsdia_4 = '0'; endif;
$ReadViewsDia_5 = ExeRead("pageviews WHERE pageview_dia = '05' AND pageview_mes = '$mes_atual' AND pageview_ano = '$ano_atual'");
$numViewsDia_5 = mysqli_num_rows($ReadViewsDia_5);
if ($numViewsDia_5 > 0): $TotalViewsdia_5 = $numViewsDia_5; else: $TotalViewsdia_5 = '0'; endif;
$ReadViewsDia_6 = ExeRead("pageviews WHERE pageview_dia = '06' AND pageview_mes = '$mes_atual' AND pageview_ano = '$ano_atual'");
$numViewsDia_6 = mysqli_num_rows($ReadViewsDia_6);
if ($numViewsDia_6 > 0): $TotalViewsdia_6 = $numViewsDia_6; else: $TotalViewsdia_6 = '0'; endif;
$ReadViewsDia_7 = ExeRead("pageviews WHERE pageview_dia = '07' AND pageview_mes = '$mes_atual' AND pageview_ano = '$ano_atual'");
$numViewsDia_7 = mysqli_num_rows($ReadViewsDia_7);
if ($numViewsDia_7 > 0): $TotalViewsdia_7 = $numViewsDia_7; else: $TotalViewsdia_7 = '0'; endif;
$ReadViewsDia_8 = ExeRead("pageviews WHERE pageview_dia = '08' AND pageview_mes = '$mes_atual' AND pageview_ano = '$ano_atual'");
$numViewsDia_8 = mysqli_num_rows($ReadViewsDia_8);
if ($numViewsDia_8 > 0): $TotalViewsdia_8 = $numViewsDia_8; else: $TotalViewsdia_8 = '0'; endif;
$ReadViewsDia_9 = ExeRead("pageviews WHERE pageview_dia = '09' AND pageview_mes = '$mes_atual' AND pageview_ano = '$ano_atual'");
$numViewsDia_9 = mysqli_num_rows($ReadViewsDia_9);
if ($numViewsDia_9 > 0): $TotalViewsdia_9 = $numViewsDia_9; else: $TotalViewsdia_9 = '0'; endif;
$ReadViewsDia_10 = ExeRead("pageviews WHERE pageview_dia = '10' AND pageview_mes = '$mes_atual' AND pageview_ano = '$ano_atual'");
$numViewsDia_10 = mysqli_num_rows($ReadViewsDia_10);
if ($numViewsDia_10 > 0): $TotalViewsdia_10 = $numViewsDia_10; else: $TotalViewsdia_10 = '0'; endif;
$ReadViewsDia_11 = ExeRead("pageviews WHERE pageview_dia = '11' AND pageview_mes = '$mes_atual' AND pageview_ano = '$ano_atual'");
$numViewsDia_11 = mysqli_num_rows($ReadViewsDia_11);
if ($numViewsDia_11 > 0): $TotalViewsdia_11 = $numViewsDia_11; else: $TotalViewsdia_11 = '0'; endif;
$ReadViewsDia_12 = ExeRead("pageviews WHERE pageview_dia = '12' AND pageview_mes = '$mes_atual' AND pageview_ano = '$ano_atual'");
$numViewsDia_12 = mysqli_num_rows($ReadViewsDia_12);
if ($numViewsDia_12 > 0): $TotalViewsdia_12 = $numViewsDia_12; else: $TotalViewsdia_12 = '0'; endif;
$ReadViewsDia_13 = ExeRead("pageviews WHERE pageview_dia = '13' AND pageview_mes = '$mes_atual' AND pageview_ano = '$ano_atual'");
$numViewsDia_13 = mysqli_num_rows($ReadViewsDia_13);
if ($numViewsDia_13 > 0): $TotalViewsdia_13 = $numViewsDia_13; else: $TotalViewsdia_13 = '0'; endif;
$ReadViewsDia_14 = ExeRead("pageviews WHERE pageview_dia = '14' AND pageview_mes = '$mes_atual' AND pageview_ano = '$ano_atual'");
$numViewsDia_14 = mysqli_num_rows($ReadViewsDia_14);
if ($numViewsDia_14 > 0): $TotalViewsdia_14 = $numViewsDia_14; else: $TotalViewsdia_14 = '0'; endif;
$ReadViewsDia_15 = ExeRead("pageviews WHERE pageview_dia = '15' AND pageview_mes = '$mes_atual' AND pageview_ano = '$ano_atual'");
$numViewsDia_15 = mysqli_num_rows($ReadViewsDia_15);
if ($numViewsDia_15 > 0): $TotalViewsdia_15 = $numViewsDia_15; else: $TotalViewsdia_15 = '0'; endif;
$ReadViewsDia_16 = ExeRead("pageviews WHERE pageview_dia = '16' AND pageview_mes = '$mes_atual' AND pageview_ano = '$ano_atual'");
$numViewsDia_16 = mysqli_num_rows($ReadViewsDia_16);
if ($numViewsDia_16 > 0): $TotalViewsdia_16 = $numViewsDia_16; else: $TotalViewsdia_16 = '0'; endif;
$ReadViewsDia_17 = ExeRead("pageviews WHERE pageview_dia = '17' AND pageview_mes = '$mes_atual' AND pageview_ano = '$ano_atual'");
$numViewsDia_17 = mysqli_num_rows($ReadViewsDia_17);
if ($numViewsDia_17 > 0): $TotalViewsdia_17 = $numViewsDia_17; else: $TotalViewsdia_17 = '0'; endif;
$ReadViewsDia_18 = ExeRead("pageviews WHERE pageview_dia = '18' AND pageview_mes = '$mes_atual' AND pageview_ano = '$ano_atual'");
$numViewsDia_18 = mysqli_num_rows($ReadViewsDia_18);
if ($numViewsDia_18 > 0): $TotalViewsdia_18 = $numViewsDia_18; else: $TotalViewsdia_18 = '0'; endif;
$ReadViewsDia_19 = ExeRead("pageviews WHERE pageview_dia = '19' AND pageview_mes = '$mes_atual' AND pageview_ano = '$ano_atual'");
$numViewsDia_19 = mysqli_num_rows($ReadViewsDia_19);
if ($numViewsDia_19 > 0): $TotalViewsdia_19 = $numViewsDia_19; else: $TotalViewsdia_19 = '0'; endif;
$ReadViewsDia_20 = ExeRead("pageviews WHERE pageview_dia = '20' AND pageview_mes = '$mes_atual' AND pageview_ano = '$ano_atual'");
$numViewsDia_20 = mysqli_num_rows($ReadViewsDia_20);
if ($numViewsDia_20 > 0): $TotalViewsdia_20 = $numViewsDia_20; else: $TotalViewsdia_20 = '0'; endif;
$ReadViewsDia_21 = ExeRead("pageviews WHERE pageview_dia = '21' AND pageview_mes = '$mes_atual' AND pageview_ano = '$ano_atual'");
$numViewsDia_21 = mysqli_num_rows($ReadViewsDia_21);
if ($numViewsDia_21 > 0): $TotalViewsdia_21 = $numViewsDia_21; else: $TotalViewsdia_21 = '0'; endif;
$ReadViewsDia_22 = ExeRead("pageviews WHERE pageview_dia = '22' AND pageview_mes = '$mes_atual' AND pageview_ano = '$ano_atual'");
$numViewsDia_22 = mysqli_num_rows($ReadViewsDia_22);
if ($numViewsDia_22 > 0): $TotalViewsdia_22 = $numViewsDia_22; else: $TotalViewsdia_22 = '0'; endif;
$ReadViewsDia_23 = ExeRead("pageviews WHERE pageview_dia = '23' AND pageview_mes = '$mes_atual' AND pageview_ano = '$ano_atual'");
$numViewsDia_23 = mysqli_num_rows($ReadViewsDia_23);
if ($numViewsDia_23 > 0): $TotalViewsdia_23 = $numViewsDia_23; else: $TotalViewsdia_23 = '0'; endif;
$ReadViewsDia_24 = ExeRead("pageviews WHERE pageview_dia = '24' AND pageview_mes = '$mes_atual' AND pageview_ano = '$ano_atual'");
$numViewsDia_24 = mysqli_num_rows($ReadViewsDia_24);
if ($numViewsDia_24 > 0): $TotalViewsdia_24 = $numViewsDia_24; else: $TotalViewsdia_24 = '0'; endif;
$ReadViewsDia_25 = ExeRead("pageviews WHERE pageview_dia = '25' AND pageview_mes = '$mes_atual' AND pageview_ano = '$ano_atual'");
$numViewsDia_25 = mysqli_num_rows($ReadViewsDia_25);
if ($numViewsDia_25 > 0): $TotalViewsdia_25 = $numViewsDia_25; else: $TotalViewsdia_25 = '0'; endif;
$ReadViewsDia_26 = ExeRead("pageviews WHERE pageview_dia = '26' AND pageview_mes = '$mes_atual' AND pageview_ano = '$ano_atual'");
$numViewsDia_26 = mysqli_num_rows($ReadViewsDia_26);
if ($numViewsDia_26 > 0): $TotalViewsdia_26 = $numViewsDia_26; else: $TotalViewsdia_26 = '0'; endif;
$ReadViewsDia_27 = ExeRead("pageviews WHERE pageview_dia = '27' AND pageview_mes = '$mes_atual' AND pageview_ano = '$ano_atual'");
$numViewsDia_27 = mysqli_num_rows($ReadViewsDia_27);
if ($numViewsDia_27 > 0): $TotalViewsdia_27 = $numViewsDia_27; else: $TotalViewsdia_27 = '0'; endif;
$ReadViewsDia_28 = ExeRead("pageviews WHERE pageview_dia = '28' AND pageview_mes = '$mes_atual' AND pageview_ano = '$ano_atual'");
$numViewsDia_28 = mysqli_num_rows($ReadViewsDia_28);
if ($numViewsDia_28 > 0): $TotalViewsdia_28 = $numViewsDia_28; else: $TotalViewsdia_28 = '0'; endif;
$ReadViewsDia_29 = ExeRead("pageviews WHERE pageview_dia = '29' AND pageview_mes = '$mes_atual' AND pageview_ano = '$ano_atual'");
$numViewsDia_29 = mysqli_num_rows($ReadViewsDia_29);
if ($numViewsDia_29 > 0): $TotalViewsdia_29 = $numViewsDia_29; else: $TotalViewsdia_29 = '0'; endif;
$ReadViewsDia_30 = ExeRead("pageviews WHERE pageview_dia = '30' AND pageview_mes = '$mes_atual' AND pageview_ano = '$ano_atual'");
$numViewsDia_30 = mysqli_num_rows($ReadViewsDia_30);
if ($numViewsDia_30 > 0): $TotalViewsdia_30 = $numViewsDia_30; else: $TotalViewsdia_30 = '0'; endif;
$ReadViewsDia_31 = ExeRead("pageviews WHERE pageview_dia = '31' AND pageview_mes = '$mes_atual' AND pageview_ano = '$ano_atual'");
$numViewsDia_31 = mysqli_num_rows($ReadViewsDia_31);
if ($numViewsDia_31 > 0): $TotalViewsdia_31 = $numViewsDia_31; else: $TotalViewsdia_31 = '0'; endif;
Abaixo o trecho em JS:
<script type="text/javascript">
google.charts.load('current', {'packages':['corechart']});
google.charts.setOnLoadCallback(drawChart);
function drawChart() {
var data = google.visualization.arrayToDataTable([
['Dias', {type: 'string', role: 'annotation'}, 'Todas as visitas', 'Visitas únicas ao site'],
['Dia 1', '', <?=$TotalViewsdia_1 ?>, 0],
['Dia 2', '', <?=$TotalViewsdia_2 ?>, 0],
['Dia 3', '', <?=$TotalViewsdia_3 ?>, 0],
['Dia 4', '', <?=$TotalViewsdia_4 ?>, 0],
['Dia 5', '', <?=$TotalViewsdia_5 ?>, 0],
['Dia 6', '', <?=$TotalViewsdia_6 ?>, 0],
['Dia 7', '', <?=$TotalViewsdia_7 ?>, 0],
['Dia 8', '', <?=$TotalViewsdia_8 ?>, 0],
['Dia 9', '', <?=$TotalViewsdia_9 ?>, 0],
['Dia 10', '', <?=$TotalViewsdia_10 ?>, 0],
['Dia 11', '', <?=$TotalViewsdia_11 ?>, 0],
['Dia 12', '', <?=$TotalViewsdia_12 ?>, 0],
['Dia 13', '', <?=$TotalViewsdia_13 ?>, 0],
['Dia 14', '', <?=$TotalViewsdia_14 ?>, 0],
['Dia 15', '', <?=$TotalViewsdia_15 ?>, 0],
['Dia 16', '', <?=$TotalViewsdia_16 ?>, 0],
['Dia 17', '', <?=$TotalViewsdia_17 ?>, 0],
['Dia 18', '', <?=$TotalViewsdia_18 ?>, 0],
['Dia 19', '', <?=$TotalViewsdia_19 ?>, 0],
['Dia 20', '', <?=$TotalViewsdia_20 ?>, 0],
['Dia 21', '', <?=$TotalViewsdia_21 ?>, 0],
['Dia 22', '', <?=$TotalViewsdia_22 ?>, 0],
['Dia 23', '', <?=$TotalViewsdia_23 ?>, 0],
['Dia 24', '', <?=$TotalViewsdia_24 ?>, 0],
['Dia 25', '', <?=$TotalViewsdia_25 ?>, 0],
['Dia 26', '', <?=$TotalViewsdia_26 ?>, 0],
['Dia 27', '', <?=$TotalViewsdia_27 ?>, 0],
['Dia 28', '', <?=$TotalViewsdia_28 ?>, 0],
['Dia 29', '', <?=$TotalViewsdia_29 ?>, 0],
['Dia 30', '', <?=$TotalViewsdia_30 ?>, 0],
['Dia 31', '', <?=$TotalViewsdia_31 ?>, 0]
]);
var options = {
chartArea : { top:20 },
vAxis: {minValue: 0},
curveType: 'function',
backgroundColor: 'none',
legend: { position: 'bottom' },
annotations: { style: 'line' },
colors: ['#15A0C8', '#dc3912'],
pointSize: 7,
series: {
0: { pointShape: 'circle' },
1: { pointShape: 'triangle' },
2: { pointShape: 'square' },
3: { pointShape: 'diamond' },
4: { pointShape: 'star' },
5: { pointShape: 'polygon' }
}
};
var chart = new google.visualization.AreaChart(document.getElementById('curve_chart'));
chart.draw(data, options);
}
</script>
você pode fazer um array de $TotalViewsdia
:
<?php
$meses = array(
'01' => 'Janeiro',
'02' => 'Fevereiro',
'03' => 'Março',
'04' => 'Abril',
'05' => 'Maio',
'06' => 'Junho',
'07' => 'Julho',
'08' => 'Agosto',
'09' => 'Setembro',
'10' => 'Outubro',
'11' => 'Novembro',
'12' => 'Dezembro'
);
$mes_atual_nome = $meses[date('m')];
$mes_atual = date('m');
$ano_atual = date('Y');
$TotalViewsdia = [];
for ($i=1; $i < 32; $i++) {
$ReadViewsDia = ExeRead("pageviews WHERE pageview_dia = '$i' AND pageview_mes = '$mes_atual' AND pageview_ano = '$ano_atual'");
$numViewsDia = mysqli_num_rows($ReadViewsDia);
$TotalViewsdia[$i] = ($numViewsDia > 0) ? $numViewsDia : 0;
}
No script você pode rodar o foreach listando os valores do array:
google.charts.load('current', {'packages':['corechart']});
google.charts.setOnLoadCallback(drawChart);
function drawChart() {
var data = google.visualization.arrayToDataTable([
['Dias', {type: 'string', role: 'annotation'}, 'Todas as visitas', 'Visitas únicas ao site'],
<?php
foreach ($TotalViewsdia as $key => $value) {
?>
['Dia <?=$key?>', '', <?= $value ?>, 0],
<?php
}
?>
]);
var options = {
chartArea : { top:20 },
vAxis: {minValue: 0},
curveType: 'function',
backgroundColor: 'none',
legend: { position: 'bottom' },
annotations: { style: 'line' },
colors: ['#15A0C8', '#dc3912'],
pointSize: 7,
series: {
0: { pointShape: 'circle' },
1: { pointShape: 'triangle' },
2: { pointShape: 'square' },
3: { pointShape: 'diamond' },
4: { pointShape: 'star' },
5: { pointShape: 'polygon' }
}
};
var chart = new google.visualization.AreaChart(document.getElementById('curve_chart'));
chart.draw(data, options);
}
Correct answer by Samuel Marques on September 27, 2021
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP