0

基本上我试图让它检查用户是否在数据库中有他们的 ID,如果他们在那里有它,它会更新它,将 $page 作为数据库中的“lastpage”。它还检查以确保它现在在其中设置的值小于 $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());
    }
4

2 回答 2

1

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

INSERT INTO html (id, lastpage) VALUES ($id, $page)
ON DUPLICATE KEY UPDATE lastpage = IF(lastpage < VALUES(lastpage), VALUES(lastpage), lastpage)
于 2013-10-08T20:56:20.577 回答
1

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

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

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

于 2013-10-08T22:37:22.233 回答