Merhabalar.
Ben butona tıklama sayısını ölçüren bir kod kullanıyorum.
Butona her tıkladığımda buton hiti +1 olarak tablomdaki tek id yi güncelliyor.
İstiyorum ki her güncelleme işlemi yaptığımda yani buton hiti her yükseldiğinde kayıt tutacak ve ben sonrasında dicem ki "MART/OCAK/ŞUBAT aylarında whatsapp butonuna ve facebook butotuna toplam kaç hit olmuş"
Bu şekilde saydırtmak istiyorum. Ne yapmam gerekir?
PHP ile Tarih Tutmak Ve Aynı Ay İçerisinde Kaç Kez Tıklandığını yazdırmak
4
●140
- 14-07-2022, 16:20:28Php de çok ileri düzey değilim.ErayEfe adlı üyeden alıntı: mesajı görüntüle
Rica etsem bir örnek yazıp atabilirmisin? - 14-07-2022, 16:32:05Şuan çalışıyorum ücretli destek isterseniz pm üzerinden kaynak dosyayı upload edip atabilirsiniz. Detayları dönüş sağlarım.iltu33 adlı üyeden alıntı: mesajı görüntüle
- 14-07-2022, 16:46:542 tablo
1.tablo tbl1
id hit
1 100
2.tablo tbl2
id, tbl1_id(int), islem_tarih(DATETIME DEFAULT NOW())
1 1 O7.16.2022 15:20:20
2. 2. 07.16.2022 15:22:10
İşlem yükünü hafifletmek için hit alanını güncelleyebilirsiniz ya da hit alanını ilişkiden alırsınız örnek
Select tbl1.*,tbl2.hit FROM tbl1 LEFT JOIN (
select count(id) as hit, tbl1_id from tbl2 group by tbl1_id)
) as tbl2 ON tbl1.id = tbl2.tbl1_id
Normalizasyon olarak birden çoğa ilişkilendirilmeli.
tbl2 tablosuna işlem kaydını backend tarafında insert ile eklemeyek yerine mysql de trigger hazırlayabiliriz
Hit alanı güncellendiğinde tbl2 tablosuna yeni kayıt oluşturmak için trigger oluşturuyoruz.
DELIMITER $$
CREATE TRIGGER after_tbl1_update
AFTER UPDATE
ON tbl1 FOR EACH ROW
BEGIN
IF OLD.hit <> new.hit
THEN
INSERT INTO tbl2(tbl1_id) VALUES(old.id);
END IF;
END$$
DELIMITER ;
Kayıt tarihleri elimizde olduğuna göre
Ocak 2020 tarihi için toplam hit sayısı
Select tbl1.*,tbl2.hit FROM tbl1 LEFT JOIN
(
SELECT count(id) as hit,tbl1_id FROM tbl2
WHERE YEAR(islem_tarih) = 2020 and MONTH(islem_tarih) = 1
GROUP BY tbl1_id
)
as tbl2
ON tbl1.id = tbl2.tbl1_id
*** Bu ay içerisinde toplam hit sayısı
Select tbl1.*,tbl2.hit FROM tbl1 LEFT JOIN
(
SELECT count(id) as hit,tbl1_id FROM tbl2
WHERE YEAR(islem_tarih) = YEAR(NOW()) and MONTH(islem_tarih) = MONTH(NOW())
GROUP BY tbl1_id
)
as tbl2
ON tbl1.id = tbl2.tbl1_id
Mobil tarafında hazırladığımdan syntax hatası olabilir, temel algoritma yukarıdaki gibi