2013-10-03 6 views
0

Я пытаюсь сделать очень простую однонаправленную систему билетов/новостей в php и mysql для распространения новостей по моему приложению (например: «Обслуживание в пятницу 22:00 до 11:00»). Сначала я учил, что это может сделать только простую таблицу:Система многопользовательской однонаправленной поддержки билетов

CREATE TABLE IF NOT EXISTS `message` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `date` varchar(18) NOT NULL, 
    `subject` varchar(200) NOT NULL, 
    `message` varchar(1000) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, 
    `recipient` text CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, 
    `read` int(1) NOT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ; 

Админо создать новые новости и выбрать получатель через множественный выбор.

<select multiple="multiple" name=[]dest > 
    <option value="all">All users</option> 
    <option value="1">User_1</option> 
    <option value="2">User_2</option> 
    <option value="n">User_n</option> 
</select> 

«Dest» будет интегрировались и обновлена ​​«message.recipient» Пользователь может просматривать новости:

SELECT * FROM message m WHERE m.recipient='all' or m.recipient RLIKE '[[:<:]]".$userID."[[:>:]]'" 

Моя проблема начинается, когда пользователь нажимает на новости и прочитать его, потому что я обновляю с '1' 'message.read' через jQuery Ajax и отменить новость, но ... это неправильно, потому что, когда первый пользователь читает новости, он будет отмечен как прочитанный для других пользователей.

Я знаю, что могу создать другую таблицу и хранящий идентификатор_пользователя и message.id для непрочитанных новостей и удалены читать его, но этого не достаточно элегантное решение ...

Любые предложения будут очень благодарны.

Спасибо! Leo

ответ

2

Вы можете хранить флажки «читать» в сеансе или в файле cookie. Таким образом, каждый пользователь будет иметь свои собственные флаги.

Другое дело:

<select multiple="multiple" name=[]dest > 

должен быть

если вы хотите правильный массив в PHP.

+0

Это. Ошибка ввода, извините. Что касается флагов сессий, мне нравится идея. спасибо –

Смежные вопросы