Premium üyelik
merhabalar süreli premium üyelik sistemi yapmak istiyorum
başlagıç tarihi
bitiş tarihi
olarak iki verim var if sorgusu ile eğer bitiş tarihi geldiyse premium olan sütunu 0 yapıyorum ama tekrar premium almak isterse sistem bunu sağlamıyor premium sütunu direkt 0 oluyor ne yapabilirim
<?php
// 1. PDO veritabanı bağlantısı
try {
$db = new PDO("mysql:host=localhost;dbname=premium", "root", "");
} catch ( PDOException $e ){
print $e->getMessage();
}
// 2. Kullanıcı bilgilerini al
$query = $db->prepare("SELECT * FROM users WHERE id = ?");
$query->execute([1]);
$user = $query->fetch(PDO::FETCH_ASSOC);
// 3. Kullanıcı premium değilse ve bitiş tarihi geçmişse premium sütununu 0 yap
if($user['premium'] == 0 && $user['premium_end'] < time()){
$query = $db->prepare("UPDATE users SET premium = 0 WHERE id = ?");
$update = $query->execute([1]);
}
// 4. Kullanıcı premium ise ve bitiş tarihi geçmişse premium sütununu 0 yap
if($user['premium'] == 1 && $user['premium_end'] < time()){
$query = $db->prepare("UPDATE users SET premium = 0 WHERE id = ?");
$update = $query->execute([1]);
}
// 5. Kullanıcı tek seferlik premium ise ve bitiş tarihi geçmişse premium sütununu 0 yap
if($user['premium'] == 2 && $user['premium_end'] < time()){
$query = $db->prepare("UPDATE users SET premium = 0 WHERE id = ?");
$update = $query->execute([1]);
}
// 6. Kullanıcı tekrar premium almak istiyorsa premium sütununu 1 yap
if($user['premium'] == 0 && $user['premium_end'] > time()){
$query = $db->prepare("UPDATE users SET premium = 1 WHERE id = ?");
$update = $query->execute([1]);
}
Kod uzerinden ornekle gostermek gerekirse basitce bu sekilde denebilir