语句和条件,如果删除聊天的逻辑

时间:2018-05-27 06:41:23

标签: php mysql

我有使用聊天应用程序的项目。我已经在这里阅读了关于如何从用户删除邮件但它不会从其他用户删除的答案。不过,我仍然坚持这样做。我可以通过不使用删除行来删除它,但仅更新idSender(idPengirim)字段。 idReceiver(idPenerima)字段仍然存在。此外,它始终从两个用户中删除。这是方法:

public function deleteChat($pengirim,$penerima,$idChat){

    $query = $this->conn->prepare("SELECT * FROM mess WHERE idChat=:idchat");
    $query->execute(array(":idchat" => $idChat));

    while($row=$query->fetch(PDO::FETCH_ASSOC)){
        $row['idPengirim'] = $pengirim;
        $row['idPenerima'] = $penerima;
        if($pengirim == -1 && $penerima == -1){
            $query = $this->conn->prepare("DELETE FROM mess WHERE idChat = :idchat");
            $query->execute(array(":idchat"=>$idChat));


        }
        if ($pengirim!=-1){
            $query = $this->conn->prepare("UPDATE mess SET idPengirim = -1");
            $query->bindParam(":idchat",$idChat);
            $query->execute();

            return $query;
        }

        if ($penerima!=-1){
            $query = $this->conn->prepare("UPDATE mess SET idPenerima = -1");
            $query->bindParam(":idchat", $idChat);
            $query->execute();

            return $query;
        }

    }
}

我不知道该怎么办。我希望我能在这里找到指南,谢谢。抱歉我的英语不好。

1 个答案:

答案 0 :(得分:0)

我认为构建聊天应用程序的正确方法是为chats构建一个表格,并包含userFromIduserToId。当你收到聊天时,你发送了一个请求get * from chat where userFromId=.. and userToId =.....,当你删除一个聊天时,你也会这样做:delete * from chat where..我不知道你是如何建立它的,但是这样你就没有问题&# 34;聊天从一个用户删除而不是从另一个用户删除" ..