SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 20.06.2014 00:24:12

toongoos
Участник
Зарегистрирован: 19.06.2014
Сообщений: 3

Вывод последнего сообщения из диалога

Здравствуйте, никак не могу получить последнее сообщение в диалоге между пользователями.


У меня
        таблицы
                    users( id, login)
                    messages (id, author, author_id,poluchatel, poluchatel_id, date, text)
Когда пишу такой селект -

$tmp = mysql_query("SELECT t1.* FROM messages as t1,(SELECT author, MAX(id)as id FROM messages GROUP BY author) as t2 WHERE t1.author = t2.author AND t1.id= t2.id AND poluchatel = '$login' ORDER BY id DESC",$db);
$messages = mysql_fetch_array($tmp);


-то выводится последнее присланное мне сообщение от пользователя- но не последнее сообщение в диалоге(когда последнее сообщение отправил я в диалоге).

 
НА всякий случай где находится всё...



if ($myrow['login'] == $login) {
$tmp = mysql_query("SELECT t1.* FROM messages as t1,(SELECT author, MAX(id)as id FROM messages GROUP BY author) as t2 WHERE t1.author = t2.author AND t1.id= t2.id AND poluchatel = '$login' ORDER BY id DESC",$db);
$messages = mysql_fetch_array($tmp);
if (!empty($messages['id'])) {
do
  {
$author = $messages['author'];
$result4 = mysql_query("SELECT avatar,id FROM users WHERE login='$author'",$db);
$myrow4 = mysql_fetch_array($result4);

if (!empty($myrow4['avatar'])) {
$avatar = $myrow4['avatar'];
}
else {$avatar = "avatars/net-avatara.jpg";}

  printf("
  <div id='message_area'>
  <table cellspacing='0' cellpadding='0' id='tablemes'>
  <tr>
<td rowspan='3'valign='top'><a href='page.php?id=%s'style='text-decoration:none'><div id='avatolittleblog'><img alt='аватар' src='%s'style='width:50;border-top-left-radius:10px;border-bottom-right-radius:10px;'></div></a></td>
<td><div id='user_name'><a href='page.php?id=%s'style='text-decoration:none'>%s</a></div></td>
<td><div id='date'>%s</div></td>
</tr>
<tr>
<td colspan='2'><div id='message_text'>%s</div></td>
<td></td>
</tr>
<tr>
<td colspan='2'><a href='drop_post.php?id=%s'style='text-decoration:none'><div id='delete_button'>Удалить</div></a></td>
<td></td>
</tr>
  </table>
  </div>
  "
,$myrow4['id'],$avatar,$myrow4['id'],$author,$messages['date'],$messages['text'],$messages['id']);
  //выводим само сообщение
  }
  while($messages = mysql_fetch_array($tmp));

                    }
                    else {
echo "Сообщений нет";
                    }        
                   
}

Неактивен

 

#2 21.06.2014 23:39:38

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5833

Re: Вывод последнего сообщения из диалога

У вас условие только на получателя - AND poluchatel = '$login'
Нужно
AND (poluchatel = '$login' OR autor='$login')

Неактивен

 

#3 02.07.2014 07:16:26

toongoos
Участник
Зарегистрирован: 19.06.2014
Сообщений: 3

Re: Вывод последнего сообщения из диалога

vasya написал:

У вас условие только на получателя - AND poluchatel = '$login'
Нужно
AND (poluchatel = '$login' OR autor='$login')

спасибо сейчас посмотрю.

Неактивен

 

#4 02.07.2014 07:19:36

toongoos
Участник
Зарегистрирован: 19.06.2014
Сообщений: 3

Re: Вывод последнего сообщения из диалога

vasya написал:

У вас условие только на получателя - AND poluchatel = '$login'
Нужно
AND (poluchatel = '$login' OR autor='$login')

нет, к сожалению нет.
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in Z:\home\test1.ru\www\page.php on line 337
Сообщений нет

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson