Diaqram.JS və Php istifadə edərək dinamik ziyarətçi qrafiki necə yaratacağınızı sizə xəbər verəcəyik. Diaqram.əvvəlcə js istifadə etmək üçün https://www.chartjs.org/docs/latest/getting-started cdn skript faylını / səhifədən layihəmizə daxil edək. Sonra jQuery kitabxanasını işə salırıq, çünki jquery istifadə edəcəyik. Bu faylın adı indeksdir.php olsun.
index.php
Təzələmək
visitors adlı verilənlər bazası
ıd ıp ziyarət tarixi
avtomatik olaraq əsas açar varchar(200) tam tarix artır
Bu layihədə verilənlər bazası ilə işləmək üçün basıc var.db sinifindən istifadə edəcəyəm. Bu sinif https://github.com/tayfunerbilen/basicdb link vasitəsilə layihənizə daxil edə bilərsiniz.
Veb saytımızın ziyarətçiləri tərəfindən ziyarət edildikdə verilənlər bazasına əlavə ediləcək bir ıp ünvanı və iki xüsusiyyət yazacağıq. Bunun üçün funksiya.php faylı yaradaq.
function.php
ziyarətçi funksiyası () {
qlobal $ db;
$visitors = $db- > from ("ziyarətçilər")
- >harada ('ıp', real())
- >harada ("il (tarix)", tarix ("Y"))
- >harada ("ay (tarix)", tarix ("m"))
- >harada ("gün (tarix)", tarix ("d"))
- >birinci();
əgər ($ziyarətçilər) {
// BU GÜN BU IP ÜNVANINDAN ZİYARƏTÇİLƏR VARMI
$db - > yeniləyin ("ziyarətçilər")
- >harada ("ıp", Real())
- >harada ("il (tarix)", tarix ("Y"))
- >harada ("ay (tarix)", tarix ("m"))
- >harada ('gün (tarix)', tarix ('d'))
- >quraşdırın([
'ziyarət' = > $ ziyarətçilər ['ziyarət'] + 1
]);
}else{
$db - > daxil et ('ziyarətçilər')
- >quraşdırın([
'ip' => vercekip(),
'ziyarət' = > 1,
'Tarix' = > Tarix ('Y-m-d')
]);
}
}
funksiya vercekip () {
if (!boş ($_SERVER ['HTTP_CLİENT_İP'])) _BOS_
$ip=$_SERVER['HTTP_CLIENT_IP'];
} elseif (!boş ($_SERVER ['HTTP_X_FORDED_FOR'])) _BOS_
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
} başqa {
$ip=$_SERVER['REMOTE_ADDR'];
} $ıp qaytarır;
}
funksiya.php sənədimizi indeksləşdirir.bunu php sənədinə daxil etməliyik və bu səhifəyə hər dəfə daxil olduğumuz zaman ziyarətçi ala biləcəyimiz üçün funksiyanı işə salmalıyıq. İndi qrafikdəki ziyarətçi məlumatlarını istifadə etmək üçün JSON formatında məlumatlar yaradacağıq. Bu səhifəyə bir sorğu verəcəyik və sütunda çağıracağıq. Məlumat alacağımız bir fayl yaradırıq.
data-ajax.php
Başlıq('məzmun növü: tətbiq/json');
date_default_timezone_set ('Avropa/İstanbul');
$visitors = $db- > from ('ziyarətçilər')
- >groupby ('Tarix')
- >orderby ('Tarix', 'təsvir')
- >seçin ('cəmi (ziyarətlər) cari ziyarət olaraq, tarix_ formatı (Tarix, \' % d.%m. % Y\') Tarix olaraq, sayı (ıp) tək ziyarət olaraq')
- >siz limit dəyişə bilərsiniz (0.30) //Son 30 gün göstərilir.
- >hamısı();
$data = array();
foreach ($qonaqlar $ sıra kimi) _BOS_
$data[] = $string;
}
echo json_encode($data);
məlumat-ajax.brauzerdə php səhifəsini ziyarət etdiyiniz zaman https://websoft.com.tr/ziyaretciler-grafik-ajax bu, linkdəki kimi bir nəticəyə gətirib çıxarmalıdır
Bundan sonra indeksi emal edəcəyik.php sənədimizə və məlumatlarımıza qayıdaq-ajax.php faylı istəyək.
index.php
"function" tələb olunur.php";
ziyarətçilər();
?>
Təzələmək
$(sənəd).hazır (funksiya () {
showGraph();
});
ekran funksiyası()
{
{
$.qeyd ("data-ajax.php",
funksiya (məlumat)
{
console.log (məlumat);
Tarix = [];
var cogulvisit = [];
vahid ziyarət var = [];
üçün (verilərdə var ı) {
history.push(data[i].date);
cogulvision.push (məlumat [i].cogulvisit);
tekilziyaret.push (məlumat [i].tək ziyarət);
}
var chartdata = {
etiketlər: Tarix,
məlumat dəstləri: [
{
etiket:"yalnız ziyarət",
fon rəngi: "#9b59b6", haşiyə rəngi: "#8e44ad",
məlumat: unikal ziyarət
},
{
etiket: "ziyarətlərin çoxluğu",
fon rəngi: "#34495e", haşiyə rəngi: "#2c3e50",
məlumat: cari ziyarət
}
]
};
var graphTarget = $("#ziyarətçilər");
var barGraph = yeni qrafik (graphTarget, {
növ: 'sütun',
məlumat: chartdata
});
});
}
}