v2.5.2
Giriş yap

Premium üyelik

wwx
438 defa görüntülendi

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

h4ckdr0
733 gün önce
<?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