Выборка из БД
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>'; }
Ну так усложни условие. 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>'; }
вот ты какое условие делаешь оно тебе то из базы и выдает
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 сек.
Вообще такая структура как у тебя не очень оптимальна, а что если я удалю сообщение которое отправил кому-то, оно же исчезнет у получателя
индексы на какие поля ты будешь ставить
как ты при разборе массива будешь определять входящее это или исходящее письмо
тип по идее надо сделать ячейку с айди кто удалиил сообщение,если он удалил то кто удалил ему не надо показывать вообще все записи или как то так
9.
horoshinkin777 (30.11.2018 / 14:32)
Андрей, я так и делал
URL:
https://visavi.net/topics/44103