我有一个用户表,其中有一个名为ROLE的列。从选择下拉列表到“角色”列的值取决于注册时用户的输入,是“ Pastor”还是“ Usher”。
它们也是称为EXPIRY-DATE的列,通过在REG-DATE列中增加90天来填充此列。
查看插入数据库的查询
$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");
因此,在注册时,到期日期列会自动填充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.';
}
}
?>
答案 0 :(得分:0)
从您的问题来看,我认为您要查询的列过多,为什么不尝试仅选择到期日期,因为这正是您真正需要的。这样您就可以像这样编写查询
$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