Ben bir cron üzerinde çalışır ve bir API [title (metin), yol (metin), ziyaretçi (tamsayı)] ve bir SQLite veritabanında saklar gelen JSON verileri çeker bir PHP komut dosyası yazıyorum. Çalıştırır her zaman, varolan başlığı görürse, bu yeni ziyaretçiler mevcut ziyaretçilere saymak eklemek gerekir. Eğer değilse, yeni bir satır olarak yeni veri eklemek gerekir.
İşte benim döngüye bir basitleştirilmiş bir bakalım:
foreach($results as $printresults) {
//this iterates though $title, $path and $visitors
$existing_visitors = $db->query("SELECT SUM(visitors) FROM topten WHERE
title='$title'");
while ($existing_vis_row = $existing_visitors->fetch(SQLITE_NUM)) {
$dupe_enter = $db->query("UPDATE topten SET title='$title', path='$path',
visitors='$existing_vis_row[0]' WHERE title='$title' ");
}
$db->query("INSERT INTO topten (id,title,path,visitors,time) VALUES
(NULL, '$title', '$path', '$visitors', '$time');");
}
Sonra ben yapacağım SELECT
ziyaretçiler tarafından sipariş edilen DISTINCT
satırlar çekin ve bir dosyaya yazmak bu. UPDATE
sorgu bu satırların tüm ziyaretçiler ekler bu yana, tüm dupes olacağı önemli değil. Belli bir zaman aşımından, ben bütün tablo bırakın ve tekrar toplamaya başlar, bu yüzden dosya çok hantal almaz edeceğiz.
Sorun tamamen ayarsız ziyaretçi sayıları yapma döngünün her geçişte özetledi ziyaretçi sayıları ekleyerek olmasıdır. Ama ben sadece birlikte komut çalıştırıldığı her zaman veri eklemek için daha iyi bir yol bulamadı.