Перейти к содержимому

Реферальная программа Мегаплана

Партнерская программа Kredov

Сообщения как вконтакте

#1 kolesgan

kolesgan
  • Пользователь
  • 73 сообщений
  • Репутация: 0
0

Отправлено 13 Сентябрь 2011 - 18:22

Хочу сделать на сайте переписку. Есть таблица в базе где пишутся от кого кому... Как сделать вывод как вконтакте или в одноклассниках, то есть вывод писем по пользователям. Делал вывод в массиве, там вытаскивает все пришедшие письма пользователю... А нужно так если несколько писем от одного пользователя, показать последний, тобишь сгруппировать пришедшие письма по пользователям, и уже зайдя в последний высвеченный там вылезет вся переписка. Надеюсь я смог объяснить что хочу, может кто посоветовать подобный алгоритм?

 

 

  • 0

#2 admin

admin
  • Пользователь PRO
  • 5 272 сообщений
  • Репутация: 54

Отправлено 13 Сентябрь 2011 - 20:49

kolesgan, а что сложного? Просто записываеть ещё и время добавления сообщения, а потом выводить по времени, более новые вверху.
  • 0

Сколько лет прошло, а ссылки всё ещё лучше покупать тут



#3 kolesgan

kolesgan
    Topic Starter
  • Пользователь
  • 73 сообщений
  • Репутация: 0

Отправлено 14 Сентябрь 2011 - 10:20

Это понятно, сгруппировать письма по пользовотелям, вот что нужно сделать. Как например у пользователя 13 писемь от 7 пользователей. Как сделать вывод писемь так, чтобы вывод был по пользователям. В итого от того пользователя от кого несколько писемь их письма можно порочесть когда зайдешь в последнее которое выдает. Ну как в соцсети "вконтакте". Надеюсь я смог объянит какой смысл меня интересует
  • 0

#4 matroskin8

matroskin8
  • Пользователь PRO
  • 767 сообщений
  • Репутация: 143

Отправлено 14 Сентябрь 2011 - 11:29

Честно говоря, не знаю как устроено вконтакте, поскольку не пользуюсь им, а ТС не совсем внятно изложил вопрос... но, насколько я понял, ничего сложного в этом нет. В БД таблица с полями: заголовок письма | текст | адресант | дата | флаг (прочитано/не прочитано)
Выбираем последнее по дате письмо с логином адресанта. При открытии текста письма параметром передаем логин (или другой связующий параметр) адресанта, по которому выбираем все письма от него.
Если нужно просто связать все письма с адресантами, то выбираем всех, кто писал, сортируем по логину и выводим в нужном виде.
  • 0


#5 admin

admin
  • Пользователь PRO
  • 5 272 сообщений
  • Репутация: 54

Отправлено 14 Сентябрь 2011 - 11:50

kolesgan, я всё равно не понял как это групировать по пользователям. Во вконтакте так не групируется, там просто выводятся сообщения по дате и не важно от каких пользователей.
  • 0

Сколько лет прошло, а ссылки всё ещё лучше покупать тут



#6 kolesgan

kolesgan
    Topic Starter
  • Пользователь
  • 73 сообщений
  • Репутация: 0

Отправлено 14 Сентябрь 2011 - 12:29

но в контакте если от одного пользователя пришло несколько писем, не выводит ее подряд все эти несколько а просто выводится одна а остальные остаются внутри нее и прочитаешь только когда зайдешь туда
  • 0

#7 admin

admin
  • Пользователь PRO
  • 5 272 сообщений
  • Репутация: 54

Отправлено 14 Сентябрь 2011 - 12:39

kolesgan, в том то и дело, что нет. Вот только что заходил специально проверил, там по несколько сообщений подряд от одного пользователя. Может быть что-то в настройках где-то необходимо сделать, но у меня именно так сейчас.
А если хотите как пишете вы, то надо делать обычную проверку конструкцией if - else повторяется ли пользователь, и если да, то выводить только последнее по времени сообщение, сделать ссылку на все сообщения от пользователя. Как-то так :)
  • 0

Сколько лет прошло, а ссылки всё ещё лучше покупать тут



#8 kolesgan

kolesgan
    Topic Starter
  • Пользователь
  • 73 сообщений
  • Репутация: 0

Отправлено 14 Сентябрь 2011 - 12:46

Попытаюсь объяснить еще раз! Есть таблица с письмами. Там 10 записей для пользвателя с id255. 3 записи от пользователя с id1 два от пользователя с id2 и пять от пользователя с id3. Нужно сделать вывод из этой таблицы. И вывод произошел по пользователям. И у нас в папке входящих писем пользователь id255 видит три письма от пользователей (id1 id2 и id3), в заголовке писем стоит последнее письмо от каждого из этих пользователей, ну и остальные непрочитанные письма он увидит только когда откроет папку с письмами именно от данного пользователя. Это как в одной папке файлы изображений, видео и музыки и в одно мгновенье они раскидываются в папки созданные в туже секунду с заголовками: изображения, видео и музыка

admin, Да вот так именно хочу, вот только незнаю как эту проверку осуществить


  • 0

#9 admin

admin
  • Пользователь PRO
  • 5 272 сообщений
  • Репутация: 54

Отправлено 14 Сентябрь 2011 - 12:55

Да вот так именно хочу, вот только незнаю как эту проверку осуществить

Все сообщения загоняются в массив-список, элементы которого пронумерованы. Далее делаем примерно такое условие: if ( $n[user] == $n+1[user] ){...}. Как я понимаю, это всё в цикл.
  • 0

Сколько лет прошло, а ссылки всё ещё лучше покупать тут



#10 kolesgan

kolesgan
    Topic Starter
  • Пользователь
  • 73 сообщений
  • Репутация: 0

Отправлено 14 Сентябрь 2011 - 12:59

Спасибо. Примерно так, щас буду экспериментировать


  • 0

robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85


Оформление форума – IPBSkins.ru