ямку
# У цій таблиці значення початку і кінця розмови переведені в секунди
# щодо початку доби
($ sql_day)="CREATE TABLE end_02 SELECT sLine, (TIME_TO_SEC (sTimeCall)) sTimeCallSec raquo ;, (TIME_TO_SEC (sTimeCall) + TIME_TO_SEC (sTimeTalk)) AS
sTimeEndSec FROM end_01" ;
$ sth=$ dbh- gt; prepare ($ sql_day);
$ sth- gt; execute () or die $ dbh- gt; errstr;
# Створення нового об'єкта Графік $ mygraph=GD :: Graph :: lines- gt; new (1000,500);
$ mygraph- gt; set (_label= gt; Time , _ label= gt; Count ,= gt; 800 ) or warn $ mygraph- gt; error;
# Цикл, в якому розглядаються поточні добу по заданому інтервалу в
# секундах
for ($ i= 0 raquo ;; $ i lt; 86400; $ i=$ i + $ interval) {
# Запит на визначення кількості записів у таблиці end_02, які
# потрапляють у розглянутий на даній ітерації циклу інтервал
($ sql_count800)="SELECT COUNT (*) FROM end_02 WHERE
(($ i gt;=sTimeCallSec) AND ($ i lt;=sTimeEndSec))" ;
$ sth=$ dbh- gt; prepare ($ sql_count300);
$ sth- gt; execute () or die $ dbh- gt; errstr;
$ res=$ sth- gt; fetchrow_array ();
$ count=$ res;
# Формування даних для побудови графіка
$ data [0] [$ i]= $ i raquo ;;
$ data [1] [$ i]=int $ count;
# Формування часу у форматі годинник-хвилини-секунди
$ h=int ($ i/+3600);
$ hour=$ h; ($ h lt; 10) {$ hour= 0 . $ h};
$ m=int (($ i% +3600)/60);
$ min=$ m; ($ m lt; 10) {$ min= 0 . $ m};
$ s=int (($ i% +3600)% 60);
$ sec=$ s; ($ s lt; 10) {$ sec= 0 . $ s};
# Якщо кількість викликів за даний інтервал перевищує порогове
# значення, то про це виводиться повідомлення
if ($ count gt;=$ Nagruzka) {print $ Lines, t raquo ;, $ hour, : , $ min, : , $ sec, laquo ; - , $ count, n };}
# Формування графіка і збереження його у файл
my $ myimage=$ mygraph- gt; plot ( @ data) or die $ mygraph- gt; error; (PICTURE, gt; c: picture_800_ $ j.png ) or die ( Can not open file for writing ); PICTURE; PICTURE $ myimage- gt; png; (PICTURE); n raquo ;, n raquo ;;
# Видалення тимчасових таблиць
($ sql_drop)= DROP TABLE end_01 raquo ;;
$ sth=$ dbh- gt; prepare ($ sql_drop);
$ sth- gt; execute () or die $ dbh- gt; errstr;
($ sql_drop)= DROP TABLE end_02 raquo ;;
$ sth=$ dbh- gt; prepare ($ sql_drop);
$ sth- gt; execute () or die $ dbh- gt; errstr;}
# Відключення від бази даних
$ dbh- gt; disconnect (); print Finish raquo ;; exit (0);