如果变量小于变量,则更新数据库


Updating Database if variable is less than variable

基本上,我试图让它检查用户是否在数据库中有他们的 ID,如果他们确实在那里有它,它会更新它,$page作为数据库中的"最后一页"。它还检查以确保它现在在其中设置的值小于 $page,如果不是,则它什么都不做。

如果用户没有 ID,则应使用设置的任何$page添加它。

问题是它根本没有在数据库中更新。

这是我到目前为止得到的代码,有人有想法吗?

session_start();
if(!isset($_SESSION['id'])) {
header("Location: ../../index.php");
} else {
}
    include '../../connect.php';
    include '../../users_func.php';
    $id = $_SESSION['id'];
    $page = 3;
    $sql_chk = " select * from html where id = '$id' and lastpage = '$page' ";
    $rs_chk = mysql_query($sql_chk);
    $num_chk = mysql_num_rows($rs_chk);
    if ($num_chk == 0) {
        mysql_query("INSERT INTO `html` (`id`, `lastpage`) VALUES ('$id', '$page') ");
    } else {
       $sql = "UPDATE html SET lastpage='$page' WHERE id='$id' and lastpage < $page";
       mysql_query($sql) or die("MYSQL Query Failed : " . mysql_error());
    }

您的代码过于冗长,这 3 个查询将替换为单个查询

INSERT INTO html (id, lastpage) VALUES ($id, $page)
ON DUPLICATE KEY UPDATE lastpage = IF(lastpage < VALUES(lastpage), VALUES(lastpage), lastpage)
我知道

您要将代码更改为mysqli或PDO等等,但是您现有的代码应该检查错误

$result = mysql_query($sql);
if (!$result) {
    die('Invalid query: ' . mysql_error());
}

在您的代码中,很有可能mysql_num_rows($rs_chk)正在检查无效的资源$rs_chk。