isset调用获取最后一个变量值

时间:2017-01-17 08:12:02

标签: php mysqli

我有一个名为Question的PHP类。内部Question是一个名为$q_id的公共变量。

class Question{
        public $url;
        public $q_id;

        function __construct(){
            global $db;
            $this->url = $_GET["url"];


            $result = $db->query("SELECT q_id FROM wyr_questions WHERE `url` = '$this->url'");

            if ($result->num_rows == 0){
                header('Location: 404');
                die();
            }

            else{
                $row = $result->fetch_array();

                $this->q_id = $row["q_id"];

            }
        }
$user = new Question();

现在我有2个按钮,一个不喜欢和类似的按钮。当用户按下喜欢或不喜欢按钮时,会调用$_POST方法。 isset方法位于类之外且位于$user对象下方。

if (isset($_POST["like"])){
        $q_id = $user->q_id;

        if ($_POST["like"] == 1){
            $db->query("UPDATE wyr_questions SET thumbs_up = thumbs_up + 1 WHERE `q_id` = '$user->q_id'"); 

        }

        else{
            $db->query("UPDATE wyr_questions SET thumbs_down = thumbs_down+1 WHERE `q_id` = '$q_id'");    

       }
}

现在,每次单击“赞”按钮时,都会根据上一个q_id的内容更新喜欢的数量。例如,我们说我喜欢q_id: 29,然后转移到q_id: 30,然后isset($_POST["like"])中的查询将更新q_id: 29而不是q_id: 30的相似数量{1}}为什么要更新之前的q_id而不是当前的q_id

1 个答案:

答案 0 :(得分:0)

只需移动您的代码

$user = new Question();
在isset调用中。

类似的东西:

class Question{
    public $url;
    public $q_id;

    function __construct(){
        global $db;
        $this->url = $_GET["url"];


        $result = $db->query("SELECT q_id FROM wyr_questions WHERE `url` = '$this->url'");

        if ($result->num_rows == 0){
            header('Location: 404');
            die();
        }

        else{
            $row = $result->fetch_array();

            $this->q_id = $row["q_id"];

        }
    }

if (isset($_POST["like"])){
    $user = new Question(); //here is the new position of this code
    $q_id = $user->q_id;

    if ($_POST["like"] == 1){
        $db->query("UPDATE wyr_questions SET thumbs_up = thumbs_up + 1 WHERE `q_id` = '$user->q_id'"); 

    }

    else{
        $db->query("UPDATE wyr_questions SET thumbs_down = thumbs_down+1 WHERE `q_id` = '$q_id'");    

   }
}