• Как правильно вывести последнее сообщение в блок слева который будет на картинке?

    @Totobi Автор вопроса
    ThunderCat , Даниил, pantsarny
    вот запрос к которому Я пришел и он достает то что мне надо. Но Я столкнулся с проблемой, в PDO нельзя везде установить одно название для бинда значения и Я сделал вот так (код после текста), но мне кажется так неправильно делать. Можете что-то посоветовать?
    public function dialogueList($id)
        {
            try
            {
               
                $query = "
                SELECT
                    m.message,
                    m.date,
                    u.login AS interlocutor_name,
                    i.img AS interlocutor_img
                FROM messages m
                JOIN (
                    SELECT MAX(date) AS max_date, dialog_id
                    FROM messages
                    WHERE from_user_id = :id1 OR to_user_id = :id2
                    GROUP BY dialog_id
                ) t ON m.dialog_id = t.dialog_id AND m.date = t.max_date
                JOIN users u ON
                    (CASE
                        WHEN m.from_user_id = :id3 THEN m.to_user_id = u.id
                        WHEN m.to_user_id = :id4 THEN m.from_user_id = u.id
                    END)
                LEFT JOIN 
                    image i ON u.id = i.obj_id AND i.obj_type = 'user' 
                WHERE m.from_user_id = :id5 OR m.to_user_id = :id6
                ";
                $stmt = $this->db->prepare($query);
                $stmt->bindValue(":id1", $id, PDO::PARAM_INT);
                $stmt->bindValue(":id2", $id, PDO::PARAM_INT);
                $stmt->bindValue(":id3", $id, PDO::PARAM_INT);
                $stmt->bindValue(":id4", $id, PDO::PARAM_INT);
                $stmt->bindValue(":id5", $id, PDO::PARAM_INT);
                $stmt->bindValue(":id6", $id, PDO::PARAM_INT);
                $stmt->execute();
                $data = $stmt->fetchAll();
    
                return $data;
            }
            catch(PDOException $e)
            {
                echo $e;
            }
        }
    Ответ написан