powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Вывод последних сообщений
7 сообщений из 7, страница 1 из 1
Вывод последних сообщений
    #38733321
danies
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
се бьюсь над одной проблемой..хочу сделать аналог диалогов вконтакте:отображается список сообщений по пользователям с выводом последнего написанного там сообщения.Пока что получилось вывести только последнее сообщение,написанное от пользователя,но я не знаю как включить в запрос и те сообщения,что я писал пользователю.
Пока что такой вид:

$messages = sprintf("SELECT max(id_message), max(time), SUBSTR(MAX(CONCAT(time, message)), 20) as message, SUBSTR(MAX(CONCAT(id_message, config)), 3) as config,user_id_message FROM message_users WHERE user_id_message_send=%d || user_id_message=%d GROUP BY user_id_message LIMIT 0,10;", mysql_real_escape_string($user_id_message), mysql_real_escape_string($user_id_message));

Переменные содержат мой id.Вид таблицы с сообщениями в файле.
...
Рейтинг: 0 / 0
Вывод последних сообщений
    #38733325
artush
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
danies,

в самых верхних сообщениях форма есть фак, так как раз описано решение.
...
Рейтинг: 0 / 0
Вывод последних сообщений
    #38733571
danies
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cижу,втыкаю в код,пока что не получилось
...
Рейтинг: 0 / 0
Вывод последних сообщений
    #38733686
artush
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Вывод последних сообщений
    #38733730
danies
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это я и прочитал,но отличие в том,что там у них сообщения на форуме,а не переписка между.
Вывод последнего написанного сообщения из всех я сделать могу.Но нужно сначала найти,существует ли диалог(т.е. найти все сообщения с моим id и другими),на основе этого вывести сообщение.Но дело в том,что оно может быть так от пользователя с моим id,так и с чужим
...
Рейтинг: 0 / 0
Вывод последних сообщений
    #38734404
danies
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Решил задачу другим методом

//Вывод

$i=0;
$r=0;
$messages_send="SELECT DISTINCT user_id_message_send, user_id_message FROM message_users WHERE user_id_message={$user_id_message} || user_id_message_send={$user_id_message};";
$messages_send=mysql_query($messages_send);

while ($user_message=mysql_fetch_array($messages_send)) {
$r++;
$t=$r-1;
$user_id[$r]=$user_message['user_id_message_send'];
$user_id1[$r]=$user_message['user_id_message'];
if($user_id[$r]!=$user_id1[$t] || $user_id1[$r]!=$user_id[$t]) {

$y=$user_id[$r];
if($y=$user_id_message) {
$id=$user_id[$r];
} else {
$id=$user_id1[$r];
}

if($id==$_SESSION['user_id']) {
$id=$user_id1[$r];;
}

$messages1 = sprintf("SELECT * FROM message_users WHERE (user_id_message_send=%d AND user_id_message=%d) || (user_id_message_send=%d AND user_id_message=%d);", mysql_real_escape_string($user_id_message), $id, $id, mysql_real_escape_string($user_id_message));
$messages1=mysql_query($messages1);
$messages_num=mysql_num_rows($messages1);
$limit=$messages_num-1;

//Поиск сообщений
$messages = sprintf("SELECT * FROM message_users WHERE (user_id_message_send=%d AND user_id_message=%d) || (user_id_message_send=%d AND user_id_message=%d) LIMIT %d,1;", mysql_real_escape_string($user_id_message), $id, $id, mysql_real_escape_string($user_id_message),$limit);
$messages=mysql_query($messages);
$user_message=mysql_fetch_array($messages);
//От кого
$send =sprintf("SELECT * FROM users WHERE user_id=%d;", mysql_real_escape_string($id));
$send_result=mysql_query($send);
$user=mysql_fetch_array($send_result);
$today=$user_message['time'];
$today = strtotime(date("Y-m-d H:i:s")) - strtotime($today);
if($today>43200) {
$today=substr($user_message['time'], 0,-9);
} else {
$today=substr($user_message['time'], -8);
}

$i++;
$user_row_message=sprintf("<table onclick='show_dialog(%d)' class='show_vop'><tr><td rowspan='2' width='52px'><img src='%s' width='50px' height='50px'></td><td><a href='show_user.php?user_id=%d' class='link' target='blank'>%s %s</a>(%s)</td><td rowspan='2' width='52px'></td></tr><tr> <td id='%d'> <font style='color:#E97451;'>'%s'</font></td></tr></table>",$user['user_id'],$user['user_pic_path'],$user['user_id'], $user['first_name'], $user['last_name'], $today,$i, htmlspecialchars($user_message['message']));
echo $user_row_message;
//Подсветка сообщения,если не прочитано
if ($user_message['config']=='no') {
echo "<script>$('#{$i}').css('background-color','#DEB887');</script>";

}
}
}
...
Рейтинг: 0 / 0
Вывод последних сообщений
    #38735564
artush
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
мне кажется тут надо что-то типа

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
select * from t_users inner join t_mails on id_message=
(select id_message from t_mails
where 
(
t_users.user_id = t_mails.user_id_message
and
user_id_send=current_user_id
)
or
(
t_users.user_id = t_mails.user_id_send
AND 
useer_id_message=current_user_id
)
ORDER BY time LIMIT 1
)

)
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Вывод последних сообщений
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]