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

时间:2013-10-08 20:44:27

标签: php

基本上我正在尝试检查用户是否在数据库中有自己的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());
    }

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

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

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

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