Задать вопрос
@f0stgis

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

В таблице сообщений есть поля
author(автор сообщения) и poluchatel(кому это сообщение отправляется)
Из этих полей нужно создать диалог, проблема в том что и в авторе и в получателе может быть использован мой логин, то есть я могу или отправить кому то сообщение или принять его, код читает что я являюсь в одном сообщении автором а в другом получателем и из за этого создается 2 диалога
<?php
$tmp = mysql_query("SELECT * FROM  messages WHERE author='$login' or poluchatel='$login'",$db); 
$messages = mysql_fetch_array($tmp);//извлекаем сообщения пользователя

if (!empty($messages['id'])) {
do // выводим сообщения
  {
    $author = $messages['author'];
    $poluchatel = $messages['poluchatel'];

    if($author == $login){
      $WHERESTYLE = " login='$poluchatel' ";
    }else{}
    if($poluchatel == $login){
      $WHERESTYLE = " login='$author' ";
    }else{}

    $result4 = mysql_query("SELECT * FROM users WHERE $WHERESTYLE ",$db); //извлекаем данные автора
    $myrow4 = mysql_fetch_array($result4);
    if (!empty($myrow4['avatar'])) {//если такового нет, то выводим стандартный(может этого пользователя уже давно удалили)
      $avatar = $myrow4['avatar'];
    }
    else {$avatar = "avatars/net-avatara.jpg";}
    $username = $myrow4['username'];
    $usernickname = $myrow4['usernickname'];
    $userfamily = $myrow4['userfamily'];
    if (!empty($myrow4['usersity'])) {
      $usersity = $myrow4['usersity'];
    }
    else {$usersity = "Неизвестно";}

    printf("
    <table>
    <tr>
    <td><a href='page.php?id=%s'><img alt='аватар' src='%s'></a></td>
    %s''%s''%s</br>%s
    <td>Автор: <a href='page.php?id=%s'>%s</a><br>
        Дата: %s<br>
      Сообщение:<br>
     %s<br>
     <!--<a href='drop_post.php?id=%s'>Удалить</a>-->
     <a href='sell.php?id=%s'>Открыть диалог</a>
    </td>  
    </tr>
    </table><br>
    ",$myrow4['id'],$avatar,$username,$usernickname,$userfamily,$usersity,$myrow4['id'],$author,$messages['date'],$messages['text'],$messages['id'],$myrow4['id']);
    //выводим само сообщение
  }
  while($messages = mysql_fetch_array($tmp));

}
else {
//если сообщений не найдено
  echo "Диалогов еще нет";
}
          
?>

А сам диалог открывается и выводятся все сообщения с пользователем, проблема лишь в том что их создается 2
Подскажите решения, спасибо!

Возможно нужно дописать какой то код который будет проверять существует ли автор или отправитель этого сообщения с таким же логином и если есть то не выводить его, только каким образом это можно сделать?
  • Вопрос задан
  • 2334 просмотра
Подписаться 1 Оценить 1 комментарий
Пригласить эксперта
Ответы на вопрос 3
Чувак, этот код настолько страшен, что его уже не спасти. Сотри его, отформатируй винчестер если понадобится, и напиши новый. Если будет нужна помощь - мы тут.

И никогда больше не ходи туда, где ты этот код нашёл.
Ответ написан
Комментировать
FanatPHP
@FanatPHP
Чебуратор тега РНР
Попов со своими видеуроками будет гореть в аду, за растление малолетних
Ответ написан
thewind
@thewind
php программист, front / backend developer
Poluchatel, usersity - Господи, срочно развидеть...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы