【问题标题】:Codeigniter 4 - WHERE clause in ModelCodeigniter 4 - 模型中的 WHERE 子句
【发布时间】:2023-01-24 02:51:14
【问题描述】:

又是我,范。 大家好, 我希望你过得好! 我正在使用 Codeigniter 4 和 Ajax 编写有关聊天应用程序的教程。 一切正常,直到我在下面的模型中应用以下代码

    public function load_chat_data($sender_id,$receiver_id) {
//        $where = ['sender_id' => $sender_id, 'receiver_id' => $receiver_id];
        
 
        $where1 = "sender_id = $sender_id OR sender_id = $receiver_id";
        $where2 = "receiver_id = $receiver_id OR receiver_id = $sender_id";
        
        $builder = $this->db->table('chat_messages');  
//      $builder->where($where);
        $builder->where($where1);
        $builder->where($where2);
        $builder->orderBy('chat_messages_id','ASC');
        $results = $builder->get();
        $rows = $results->getResultArray();
        if($rows > 0)
        {
            return $rows;
        }
        else
        {
            return false;
        }
        
    }

我评论的行在评论之前运行良好,但我想要获得的数据不足,因此我尝试通过添加更多代码来获取发送方和接收方的数据以显示在视图上。但是,当我为 WHERE 子句尝试 $where1$where2 时,它没有用。我认为这一定是语法错误。请更正我的代码或任何关于代码如何以相同含义工作的想法。 太感谢了!!!

我尝试如下,但它仍然没有用。

$where1 = "sender_id={$sender_id} OR sender_id={$receiver_id}";
$where2 = "receiver_id={$receiver_id} OR receiver_id={$sender_id}";

另外,我试过:

$where1 = "'sender_id'=$sender_id OR 'sender_id'=$receiver_id";
$where2 = "'receiver_id'=$receiver_id OR 'receiver_id'=$sender_id";

【问题讨论】:

  • 谢谢你给我上面的链接。它现在通过使用下面的这两行来工作: $builder->where('(sender_id = "'.$sender_id.'" OR sender_id = "'.$receiver_id.'")'); $builder->where('(receiver_id = "'.$receiver_id.'" OR receiver_id = "'.$sender_id.'")');
  • 非常感谢,史蒂文!祝你有美好的一天,下次讨论见!

标签: sql chat codeigniter-4


【解决方案1】:

我认为您正在尝试接收两个人之间对话的消息。您可以为此尝试以下代码吗?

$builder->groupStart(); // or $builder->orGroupStart();
$builder->where('sender_id', $sender_id);
$builder->where('receiver_id', $receiver_id);
$builder->groupEnd();

$builder->orGroupStart();
$builder->where('sender_id', $receiver_id);
$builder->where('receiver_id', $sender_id);
$builder->groupEnd();

【讨论】:

    猜你喜欢
    • 2014-02-06
    • 2012-04-23
    • 1970-01-01
    • 2018-08-20
    • 2018-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-30
    相关资源
    最近更新 更多