Выборка из БД

1. horoshinkin777 (29.11.2018 / 11:53)
Пишу скрипт диалогов.
$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. Это один диалог. Подскажите как избавиться от лишнего

2. Вантуз-мен (29.11.2018 / 12:30)
Что получается на выходе я не очень понял в чем проблема

3. horoshinkin777 (29.11.2018 / 12:36)
Вантуз-мен, например чел с 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>';
    

}


4. Zдешний (29.11.2018 / 12:47)
@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 и дальше, чтобы от кого там равно тому то, кому - не равно тому то.

5. horoshinkin777 (29.11.2018 / 12:51)
Zдешний, я пытался что то придумать, не выходит... мозги себе сломал уже

6. Андрей (29.11.2018 / 18:20)
@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)
вот ты какое условие делаешь оно тебе то из базы и выдает

7. Вантуз-мен (29.11.2018 / 18:38)
horoshinkin777, почему в базе именно 3 сообщения, я понимаю 2 или 4 когда дублируются, но с 3 я не очень понял

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

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

8. Андрей (29.11.2018 / 21:45)
@horoshinkin777, почему в базе именно 3 сообщения, я понимаю 2 или 4 когда дублируются, но с 3 я не очень понял

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

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

9. horoshinkin777 (30.11.2018 / 14:32)
Андрей, я так и делал

URL: https://visavi.net/topics/44103