За последние 24 часа нас посетили 8740 программистов и 668 роботов. Сейчас ищут 176 программистов ...

Затык с диалогами. Нид хелп!

Тема в разделе "PHP для новичков", создана пользователем webog, 13 фев 2020.

  1. webog

    webog Активный пользователь

    С нами с:
    13 май 2014
    Сообщения:
    236
    Симпатии:
    5
    Всем добра!

    Парни, туплю с диалогами что-то...

    Обычный чат, сообщение, дата. НО! Хотелось бы дату выводить 1 раз. (как во Вконтакте)
    Т.е. написал вчера будет 12 февраля и 100500 сообщений без даты. Написал сегодня, будет 13 февраля и ниже сообщения.
    В бд лежит каждое сообщение с датой. Вывожу в цикле, аякс.
    Сам запрос:
    PHP:
    1. SELECT *,db_mail_full.date as mess_data
    2.                 FROM db_mail_full, db_mail_id
    3.                 WHERE db_mail_id.id = db_mail_full.id_ticket
    4.                 AND db_mail_full.id_ticket = ? ORDER BY db_mail_full.id DESC LIMIT 20
    Пробовал с GROUP BY FROM_UNIXTIME(db_mail_full.date, '%Y-%m-%d') , но это видимо не выход.

    Спасибо всем кто подскажет куда копать!
     
  2. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    1.811
    Симпатии:
    380
    Адрес:
    Татарстан
    В запросе этого не добьешься, потому как там нет понятия текущий, предыдущий, последующий...
    Проще всего при выводе это делать,
    1) если переменная пуста - то вывел сообщение с датой - запомнил дату в переменную,
    2) следующее сообщение перед тем как вывести - сверяешь с этой переменной, если дата та-же, её не выводишь, если изменилась - то в п 1 идем, и так в цикле все выводишь
     
    webog нравится это.
  3. webog

    webog Активный пользователь

    С нами с:
    13 май 2014
    Сообщения:
    236
    Симпатии:
    5
    @ADSoft, в БД дата в UNIX, поэтому всегда будет разной.
    Число сверять!? Тогда 12 января и 15 февраля будет хрень.
    В общем решение НЕ найдено.