php ile günlük bakiye ekleme olayı
Merhabalar, bir sistemim var ve ilgili tablodaki sütunda 0 veya 1 diye aktiflik durumuna göre değişen bir yapıya sahip.
Kullanıcı eğer o seçeneği aktif olarak işaretlemişse arkaplanda basit bi hesaplama yapıp her gün sisteme giriş yapsa veya yapmasa hesap sonucunu başka bi tabloya insert etmesi gerekiyor.
Bunu nasıl yapabilirim? Şimdiden herkese teşekkür ederim.
PHP ve MySQL kullanarak bu işlemi gerçekleştirmeniz mümkündür. Öncelikle ilgili tablodaki aktiflik durumunu kontrol edecek bir SQL sorgusu yazmalısınız. Daha sonra, kullanıcının sisteme giriş yaptığını kontrol edecek bir kod parçası yazmalısınız. Eğer kullanıcı sisteme giriş yapmışsa, yapacağınız hesaplamalar sonucunda elde ettiğiniz değerleri başka bir tabloya insert etmek için bir SQL sorgusu yazmalısınız. Örnek olarak:
// veritabanına bağlanmak için PDO nesnesi
$conn = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
// ilgili tablodaki aktiflik durumunu kontrol eden SQL sorgusu
$sql = "SELECT aktiflik FROM table_name WHERE user_id = :user_id";
$stmt = $conn->prepare($sql);
$stmt->execute(array(':user_id' => $user_id));
$row = $stmt->fetch(PDO::FETCH_ASSOC);
// kullanıcının sisteme giriş yaptığını kontrol eden kod parçası
if ($row['aktiflik'] == 1) {
// kullanıcı sisteme giriş yapmış
// hesaplamalar
$sonuc = ...;
// başka bir tabloya insert etmek için SQL sorgusu
$sql = "INSERT INTO table_name (user_id, sonuc) VALUES (:user_id, :sonuc)";
$stmt = $conn->prepare($sql);
$stmt->execute(array(':user_id' => $user_id, ':sonuc' => $sonuc));
}
Ayrıca her gün otomatik olarak yapmasını istediğiniz işlemi gerçekleştirmek için bir cron job oluşturmanız gerekir.
Cron job oluşturmak için ilk olarak terminale erişiminiz olması gerekir. Erişiminiz varsa, terminale "crontab -e" komutunu yazabilirsiniz. Bu komut, cron tablosunun düzenlenmesi için bir düzenleyici açar.
Daha sonra, oluşturmak istediğiniz cron job'unun nasıl çalışacağını belirtmeniz gerekir. Cron jobların çalışması için öncelikle belirli bir zaman aralığı belirtmeniz gerekmektedir. Bunun için cron tablosunda 5 adet alan bulunur:
Dakika (0 ile 59 arası)
Saat (0 ile 23 arası)
Gün (1 ile 31 arası)
Ay (1 ile 12 arası)
Haftanın günü (0 ile 7 arası, 0 ve 7 Pazar gününü ifade eder)
Bu alanları, belirli bir zaman aralığı için kullanabilirsiniz. Örneğin, her gün saat 00:00'da bir script'i çalıştırmak istiyorsanız, cron tablosunda aşağıdaki gibi bir girdi oluşturabilirsiniz:
0 0 * * * /usr/bin/php /path/to/script.php
Bu girdi, her gün saat 00:00'da /usr/bin/php komutunu kullanarak /path/to/script.php adresindeki script'i çalıştırır.