Выборка из БД

Печать RSS
461

H
Автор
Пришелец
0
Пишу скрипт диалогов.
$result = mysqli_query($db, "SELECT DISTINCT otkogo, komu FROM message WHERE otkogo = '$my_id' OR komu = '$my_id' ORDER by id DESC");
вот так получаю диалоги в которых я учавствовал в формате 'id id'.
но на выходе получается например 12 и 21. Это один диалог. Подскажите как избавиться от лишнего

Господин ПЖ
0
Что получается на выходе я не очень понял в чем проблема
H
Автор
Пришелец
0
Вантуз-мен, например чел с id=1 написал челу с id=2 и потом чел с id=2 ответил челу с id=1. Итого в базе 3 сообщения.
на странице со списком диалогов в которых я учавствовал получаю след запись:
id=1 id=2
id=2 id=1
по сути это один диалог а выдает как будто 2 разных

Добавлено через 01:08 сек.
$result = mysqli_query($db, "SELECT DISTINCT otkogo, komu FROM message WHERE otkogo = '$my_id' OR komu = '$my_id' ORDER by id DESC");

while ($myrow = mysqli_fetch_array($result)) {
echo $myrow['otkogo'].$myrow['komu'].'<br>';
    

}

Веем холодом
0
@Vantuz, например чел с id=1 написал челу с id=2 и потом чел с id=2 ответил челу с id=1. Итого в базе 3 сообщения.
на странице со списком диалогов в которых я учавствовал получаю след запись:
id=1 id=2
id=2 id=1
по сути это один диалог а выдает как будто 2 разных

Добавлено через 01:08 сек.
$result = mysqli_query($db, "SELECT DISTINCT otkogo, komu FROM message WHERE otkogo = '$my_id' OR komu = '$my_id' ORDER by id DESC");while ($myrow = mysqli_fetch_array($result)) {echo $myrow['otkogo'].$myrow['komu'].'<br>'; }
@horoshinkin777 (Сегодня / 14:36)
Ну так усложни условие. AND и дальше, чтобы от кого там равно тому то, кому - не равно тому то.
H
Автор
Пришелец
0
Zдешний, я пытался что то придумать, не выходит... мозги себе сломал уже
А

Чатланин
0
@Vantuz, например чел с id=1 написал челу с id=2 и потом чел с id=2 ответил челу с id=1. Итого в базе 3 сообщения.
на странице со списком диалогов в которых я учавствовал получаю след запись:
id=1 id=2
id=2 id=1
по сути это один диалог а выдает как будто 2 разных

Добавлено через 01:08 сек.
$result = mysqli_query($db, "SELECT DISTINCT otkogo, komu FROM message WHERE otkogo = '$my_id' OR komu = '$my_id' ORDER by id DESC");while ($myrow = mysqli_fetch_array($result)) {echo $myrow['otkogo'].$myrow['komu'].'<br>'; }
@horoshinkin777 (Сегодня / 12:36)
вот ты какое условие делаешь оно тебе то из базы и выдает

Господин ПЖ
0
horoshinkin777, почему в базе именно 3 сообщения, я понимаю 2 или 4 когда дублируются, но с 3 я не очень понял

ну а так ты написал такое условие что от кого =1 или кому =1, вроде все верно, напиши точно что получается и что ты хочешь получить

Добавлено через 02:04 сек.
Вообще такая структура как у тебя не очень оптимальна, а что если я удалю сообщение которое отправил кому-то, оно же исчезнет у получателя
индексы на какие поля ты будешь ставить
как ты при разборе массива будешь определять входящее это или исходящее письмо
А

Чатланин
0
@horoshinkin777, почему в базе именно 3 сообщения, я понимаю 2 или 4 когда дублируются, но с 3 я не очень понял

ну а так ты написал такое условие что от кого =1 или кому =1, вроде все верно, напиши точно что получается и что ты хочешь получить

Добавлено через 02:04 сек.
Вообще такая структура как у тебя не очень оптимальна, а что если я удалю сообщение которое отправил кому-то, оно же исчезнет у получателя
индексы на какие поля ты будешь ставить
как ты при разборе массива будешь определять входящее это или исходящее письмо
@Vantuz (Сегодня / 18:38)
тип по идее надо сделать ячейку с айди кто удалиил сообщение,если он удалил то кто удалил ему не надо показывать вообще все записи или как то так
H
Автор
Пришелец
0
Андрей, я так и делал
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск