Ломаю голову, как правильно реализовать логику личных сообщений. PHP: $stmt = $db->prepare("SELECT * FROM `messages` WHERE `from`=:mfrom AND `to`=:to"); $stmt->bindParam(':mfrom', $USER); $stmt->bindParam(':to', $to); $stmt->execute(); while ($row = $stmt->fetch()){$message=$row['message'];$from=$row['from']; $to=$row['to']; echo $from.':'.' '.$message.'<br>'; } И БД: Спойлер: img
Тоже думал об этом как то... ИМХО тут одной таблицей не отделаешься. Я бы, наверное, подумал о, минимум, двух табцицах. В одной сами сообщения с датой. + id автора и id переписки в виде внешних ключей. Вторая такая как у тебя в спойлере, кроме последнего поля. офф топ: полез попгуглить этот вопрос - там тело доказывает, что в вк у каждого пользователя своя папка с его переписками)))
Дело в том, что как я написал, отображает лишь сообщения одного пользователя, а второго нет, причем с двух сторон должно быть.
Ну так вы, ведь, и выводите только со стороны того, кто отправил. --- Добавлено --- Только запрос неправильный. "SELECT * FROM `messages` WHERE `from`=$myname OR `to`=$myname"
Может и не хрень, но я ничего не понял Мне лень вникать)) Я бы ограничился одной БД. Хотя логика вполне нормальная. В одной таблице сообщения, а в другой - связки.
@SamyRed Мне не нравится ограничение в 2 пользователя. А вдруг ты завтра захочешь реализовать переписку между 3 и более пользователями...
ТС,почитай,может найдешь ответы здесь http://www.9lessons.info/2013/05/message-conversation-database-design.html
(`from`=111 AND `to`=222) OR (`from`=222 AND `to`=111) --- Добавлено --- это ты все свои беседы затащишь в один тред.
Выспался и всё придумал Создаешь три таблицы. 1. переписки --- | id_переписки | id_инициатора_переписки | ну и дальше сам смотри. Темы, даты, хераты, как сам хочешь... 2. участники переписки --- | id_записи | id_переписки | id_участника | 3. сообщения --- | id_сообщения | текст сообщения | id_автора | id_переписки | Вытягиваешь все переписки, в которых участвует пользователь, если надо, вытягиваешь инфу о самих переписках и вытягиваешь все сообщения этих переписок. Логика, думаю, ясна... Плюс этой схемы в том, что у тебя нет ограничений на количество участников переписки.
Вот это гениально! Как я не додумался до этого... Спасибо большое! --- Добавлено --- Слишком много запросов, мне не нужны участники переписки, однако спасибо, возьму на заметку.)