Как ОБНОВИТЬ статус пользователя в БД, когда datediff = 0 - PullRequest
0 голосов
/ 01 октября 2018

У меня есть таблица пользователей, где у меня есть один из столбцов с именем ROLE.Значения из выпадающего списка select в столбце Role - это либо «Pastor», либо «Usher», в зависимости от ввода пользователя при регистрации.

Это также столбец с именем EXPIRY-DATE, этот столбец заполняется добавлением 90дней до столбца REG-DATE.

См. запрос, который вставляется в БД

$sql = "INSERT INTO users (titled, firstname, lastname, phone, email, 
            center_id, region_id, rolename, username, password, date, expirydate) 
        VALUES 
        ('$titled','$firstname','$lastname','$phone','$email','$center_name','$region_name ','$rolename','$username','$password', now(), DATE_ADD(NOW(), INTERVAL 90 day))  ";

if(!mysqli_query($con, $sql)) {
    echo("Error description: " . mysqli_error($con));
}else {
    $message = "Details submitted Successfully";
}
header("refresh:60 , url=register.php");

Таким образом, при регистрации столбец expirydate автоматически заполняется будущей датой регдаты на 90 дней.

На счету пастора - отсчет времени до истечения срока действия.Например: Срок действия вашей подписки истекает через 24 дня.Нажмите здесь Нажмите здесь, чтобы расширить его. вид уведомлений.

Теперь, когда эта разница в датах отсчитывается до 0 дней, я хочу, чтобы это сообщение уведомления полностью изменилось на другое сообщение.,Например: Срок вашей подписки истек.Нажмите здесь Нажмите, чтобы обновить.

К сожалению, мой код не меняет это сообщение.

Пожалуйста, помогите.Я не хочу JS, пожалуйста.

Код

<?php  

$expirydate = $_SESSION["expirydate"];
$result = mysqli_query($con, "SELECT user_id, center_id, expirydate, 
        rolename FROM users WHERE rolename='Center Pastor' and user_id = '$user_id' 
        AND center_id = '$center_id'") or die("Failed".mysqli_error($con));

if ($result) {
    if (mysqli_num_rows($result)>0) {

        $current_date = date("Y-m-d");         
        $diff = (strtotime($expirydate) - strtotime($current_date));
        $total_days = floor ($diff / (60*60*24));

        echo ' will expire in '.$total_days.' day(s). Click here <a 
                        href="" class="alert-link">Click Here</a> to extend it.';
    }
    else {

        echo ' has expired. Click here <a href="" class="alert- 
                           link">Click Here</a> to renew.';
    }
}
?>

1 Ответ

0 голосов
/ 02 октября 2018

Исходя из вашего вопроса, я думаю, что вы запрашиваете слишком много столбцов, почему бы вам не попробовать выбрать только дату окончания срока действия, поскольку это то, что вам действительно нужно.Таким образом, вы можете написать свой запрос следующим образом:

$result = mysqli_query($con, "SELECT expirydate FROM users WHERE  and user_id = '$user_id'") or die("Failed".mysqli_error($con));

Во-вторых, сообщение не изменяется, потому что ваш запрос либо не выполняется, либо эта строка

  if (mysqli_num_rows($result)>0) {

возвращает значение меньше 0 или 0

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...