Właśnie jestem na etapie udoskonalania moich statystyk whois, i zacząłem od przeróbki interfejsu wykresów różnych danych o odwiedzających. Użyłem do tego celu opensourceowej klasy "open flash chart" która tworzy zbiór danych wyjściowych i przesyła do archiwum SWF które zajmuje się przedstawieniem tego w formie wykresu macromedia flash.

Jest do dokładne odwzorowanie tego co posiada google analitycs. Ale teraz to sedna. Problem w tym, że w kodzie generującym zestawnienie wizyt i odsłon w ciagu ostatniego tygodnia , zapytania do mysql trwają bardzo długo. Korzystam z trzech osobnych query: jedno odlicza ostatnich siedem dni od bieżącej daty i pobiera nazwy dni, drugie i trzecie zwraca odpowiednio wszystkich odwiedzających z jednego IP, którzy przeglądali w danym okresie albo jedną lokalizacje lub więcej. Kod wygląda mniej więcej tak:
<?php include ("db.php"); include_once( 'ofc-library/open-flash-chart.php' ); for ($i=7; $i>0; $i--) { /* foreach($d_elem as $t_value) { echo $t_value; } */ $d_strontment = $d_elem[2]."-".$d_elem[1]."-".$d_elem[0]; when 1 then 'pon.' when 2 then 'wt.' when 3 then 'sr.' when 4 then 'czw.' when 5 then 'pt.' when 6 then 'so.' when 0 then 'nd.' end as dzien from EXTENSION where VISIT_DATA = '".$d_strontment."' order by VISIT_DATA DESC"); //print $leg_val[0]."<br>"; $invites = mysql_query("select count(VISIT_ID) from URLS,EXTENSION where (URLS.VISIT_ID=EXTENSION.ID) and (EXTENSION.VISIT_DATA='".$d_strontment."') group by URLS.VISIT_ID having count(*) = 1;"); $visites = mysql_query("select count(VISIT_ID) from URLS,EXTENSION where (URLS.VISIT_ID=EXTENSION.ID) and (EXTENSION.VISIT_DATA='".$d_strontment."') group by URLS.VISIT_ID having count(*) > 1;"); } $g = new graph(); $g->title( 'Zestawienie wizyty/odslony', '{font-size: 10px; color: #000000}' ); // we add 3 sets of data: $g->set_data( $datay1 ); $g->set_data( $datay2 ); $g->line_dot( 3, 5, '#8BB1A1', 'Wizyty', 10); $g->line_hollow( 2, 4, '#BAA8BD', 'Odslony', 10 ); $g->set_x_labels( $data ); $g->set_y_max( 20 ); // // // $g->set_inner_background( '#E3F0FD', '#CBD7E6', 90 ); // // // $g->x_axis_colour( '#8499A4', '#E4F5FC' ); $g->y_axis_colour( '#8499A4', '#E4F5FC' ); $g->bg_colour = '#E4F5FC'; $g->y_label_steps( 4 ); $g->set_y_legend( 'Liczba odwiedzajacych', 12, '0x736AFF' ); ?>
Z góry dzięki :roll2: