Создание простейшего "чата"

ghaiklor

Новичок
Привет всем. В задаче стоит создание почтового модуля в стиле "чата". Хотя чат это не назовешь, как по мне.
Есть таблица в БД:
CREATE TABLE `mail_message` (
`id` int(11) unsigned NOT NULL auto_increment,
`message` text NOT NULL,
`email_to` varchar(255) NOT NULL,
`email_from` varchar(255) NOT NULL,
`type_id` int(11) default NULL,
`sent_date` datetime default NULL,
`create_date` datetime NOT NULL,
`message_state` int(11) NOT NULL default '0' COMMENT '0-not sent, 1-sent',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Сюда записывается сообщение, кому оно послано и кем.
Сам модуль у меня идет отдельно и я его просто подключаю через
PHP:
include 'include/mail.php';
.
Но проблема в том, что я первый раз столкнулся с написанием таких вот "чатов" и не знаю еще с чего начать даже.
Хочу сделать список пользователей, делаю так:
PHP:
$query = mysql_query("SELECT * FROM users WHERE users.company_id = '" . $_SESSION['company_id'] . "'");
                    while ($result = mysql_fetch_assoc($query)) {
                        echo "<li><a href='#'>" . $result['login'] . "</a></li>";
                    }
Но как организовать загрузку истории сообщений конкретного пользователя, по которому щелкнули?
Вот щелкнули по юзеру, и справа загрузилась история сообщений и форма внизу для отправки сообщения.

Как это можно сделать?
Заранее спасибо.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Откуда появилась задача?
 

ghaiklor

Новичок
c0dex
а зачем знать все это вам?
Я же не прошу уже слать исходные коды проектов, просто подскажите куда рыть и как все это реализовать. Мне толчок нужен, а дальше сам смогу.
 

ghaiklor

Новичок
Фанат
трудно, потому что я знаю все наше современное поколение. Начнут обсуждать, что бы я не сказал. Ну раз хотите знать, то это по работе. Я недавно устроился на работу и опыта в php еще мало, но тем не менее я только учусь.
 

Фанат

oncle terrible
Команда форума
Меньше лирики - больше дела.
Хотя чат это не назовешь, как по мне.
По мне - тоже.
(Кстати сказать - если ты сам не до конца понимаешь, что за задачу тебе задали, то спрашивать совета в реализации как-то глупо - не находишь?)
Не можешь внятно сформулировать задачу - описывай контекст.
Чем больше контекста, связанного с задачей - тем проще понять - что, в конце концов, нужно.
А твое "Задали по работе" - это все равно что на вопрос доктора "Где у тебя болит" ответить "Дома!".

Это что-то вроде "личных сообщений", как на этом форуме, или что? Сравнительно недавно был подробный топик на эту тему, надо поискать.
Если что-то другое - потрудись описать словами.
Требовать от посторонних людей, чтобы они не только ответили на твой вопрос, но сначала сами себе его и задали, выкопав из структуры таблицы и невнятного описания - это уже перебор.
 

ghaiklor

Новичок
Нужно сделать возможность переписки по внутренней почте.
Только сделать вместо стандартных "Входящие" и "Исходящие" просто история сообщений.
Логика работы данной задачи:
1) Пользователь заходит во вкладку "Почта";
2) Появляется блок, который разделен на 2 колонки. В первой - список пользователей, кому можно отправить письмо, во второй - история сообщений с пользователем;
3) Пользователь щелкает по одному из пользователей в списке;
4) С БД подгружает историю переписки этого пользователя с тем, по которому щелкнули и выводит в правую колонку, в историю сообщений;
5) Пользователь может написать письмо этому пользователю используя поле внизу;

Я знаю, что это все нужно реализовать AJAX-формами, но я не могу начать это делать. Самое тяжелое для меня - это старт, с чего начать-то нужно?
Вот и возвращаюсь к первому посту "Хочу сделать сейчас такой функционал: по щелчку по пользователю, выводит историю сообщений с ним в <div>".
 

С.

Продвинутый новичок
Я знаю, что это все нужно реализовать AJAX-формами
Совсем не обазательно. Даже без iframe`ов можно для начала обойтись. AJAX-свистульки можно потом по желанию
Хочу сделать сейчас такой функционал: по щелчку по пользователю, выводит историю сообщений с ним в <div>
Сделай сначала "по щелчку по пользователю" загрузку страницы заново с обновленной информацией. Перед тобой две равносложные здачи. Начни с решения одной.
 

ghaiklor

Новичок
С.
я начинаю понимать ход твоих мыслей.
То есть я сначала пишу скрипт, который мне выведет нужную инфу по запросу. А потом, при необходимости, я просто использую AJAX и этот скрипт.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Право не хочется писать решение тому, кто отвечает вопросом на вопрос. Но все же.

Какой толчок тебе нужен? Первая книга по php? Которую ты не читал, в чем я более чем уверен.

Вся твоя задача сводится к 2м таблицам, users и messages.

При чем во второй поля <from> и <to> должны быть ссылками на поля <id> из первой.

Далее если ты зашел куда-то там, скажем на inbox.php, то без дополнительных параметров у тебя грузится все как надо. Если надо загрузить историю по человеку, делаем ссылку inbox.php?userid=123 и вытягиваем его историю, просто написав 1 запрос.
 

ghaiklor

Новичок
c0dex
я уже разобрался со всем.
P.S. Прочитано больше книг по php, чем ты думаешь. А вот по AJAX - ни одной.
 

Фанат

oncle terrible
Команда форума
Строго говоря, нету никакого AJAX.
Есть Яваскрипт. И читать книги по Аяксу это все равно, что читать книги про бутерброды с колбасой.

Весь аякс сводится к единственной функции, которая отправляет НТТР запрос на сервер и получает ответ. Функция (и обработка полученных результатов) пишется на JS
Для сервера же аякс-запросы ничем не отличаются от обычных.
 

ghaiklor

Новичок
Фанат
значит строго говоря, программирование веб-сервисов сводится к двум языка - PHP и JavaScript. А все остальное лишь фреймворки на базе этих двух?
 

AmdY

Пью пиво
Команда форума
ghaiklor
извиняюсь, а вы являетесь экспертом в применении буквы "ч" или буквы "г", может прочли книгу как пользоваться операцией сложения, но ещё ни одной по операции деление?
 

Фанат

oncle terrible
Команда форума
ghaiklor
ну, грубо говоря - да. если считать РНР единственным языком серверного программирования.
еще желательно не забыть протокол, по которому они общаются - НТТР.
 

baev

‹°°¬•
Команда форума
ghaiklor
ну, грубо говоря - да. если считать РНР единственным языком серверного программирования.
еще желательно не забыть протокол, по которому они общаются - НТТР.
— плюс HTML, плюс SQL. (Да и CSS — тоже «язык».)
 
Сверху