v2.5.2
Giriş yap

php ile günlük bakiye ekleme olayı

omerguler
313 defa görüntülendi ve 2 kişi tarafından değerlendirildi

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.

Cevap yaz
Cevaplar (6)
h4ckdr0
467 gün önce

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.

omerguler
466 gün önce

@h4ckdr0 teşekkürler hocam

smack
467 gün önce

SQL zamana bagli tetikleyici(trigger) kullanmayi da deneyebilirisin. Her gece saat 12:00'de tetiklenebilir mesela.

alpkrky
469 gün önce

$sayac gibi bir değişken oluştur. Eğer başlangıç değerin varsa ordan başlat yoksa boş olarak olarak başlat.
Örneğin;

$sayac=$veritabanıdegiskeni["deger"];
if($veritabanıdegiskeni["aktfilik"]==1){
    $sayac++;
}

gibi bir kod yazabilirsin. Eğer doğru anladıysam yardımcı olacaktır.

omerguler
470 gün önce

@m100 hocam biraz detay verirseniz size zahmet

m100
470 gün önce

cron ile yapabilirsin