|
|
|
Вывод последних сообщений
|
|||
|---|---|---|---|
|
#18+
се бьюсь над одной проблемой..хочу сделать аналог диалогов вконтакте:отображается список сообщений по пользователям с выводом последнего написанного там сообщения.Пока что получилось вывести только последнее сообщение,написанное от пользователя,но я не знаю как включить в запрос и те сообщения,что я писал пользователю. Пока что такой вид: $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.Вид таблицы с сообщениями в файле. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2014, 13:31:08 |
|
||
|
Вывод последних сообщений
|
|||
|---|---|---|---|
|
#18+
danies, в самых верхних сообщениях форма есть фак, так как раз описано решение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2014, 13:33:51 |
|
||
|
Вывод последних сообщений
|
|||
|---|---|---|---|
|
#18+
Cижу,втыкаю в код,пока что не получилось ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2014, 14:48:04 |
|
||
|
Вывод последних сообщений
|
|||
|---|---|---|---|
|
#18+
вот тут описание есть: http://www.sql.ru/forum/687908/faq-vyborka-pervoy-posledney-zapisi-v-gruppah ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2014, 21:34:09 |
|
||
|
Вывод последних сообщений
|
|||
|---|---|---|---|
|
#18+
Это я и прочитал,но отличие в том,что там у них сообщения на форуме,а не переписка между. Вывод последнего написанного сообщения из всех я сделать могу.Но нужно сначала найти,существует ли диалог(т.е. найти все сообщения с моим id и другими),на основе этого вывести сообщение.Но дело в том,что оно может быть так от пользователя с моим id,так и с чужим ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2014, 23:29:36 |
|
||
|
Вывод последних сообщений
|
|||
|---|---|---|---|
|
#18+
Решил задачу другим методом //Вывод $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>"; } } } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2014, 20:56:30 |
|
||
|
Вывод последних сообщений
|
|||
|---|---|---|---|
|
#18+
мне кажется тут надо что-то типа Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2014, 00:49:48 |
|
||
|
|

start [/forum/topic.php?fid=47&fpage=164&tid=1834290]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
54ms |
get topic data: |
13ms |
get forum data: |
4ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
| others: | 251ms |
| total: | 412ms |

| 0 / 0 |
