Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
1 / 1 / 0
Регистрация: 30.05.2010
Сообщений: 10

MYSQL PHP Система оповещений (Notices)

14.11.2013, 12:15. Показов 1424. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток, уважаемые коллеги! Реализовал систему оповещений на своем сайте. Оповещения работают без обновления страницы (AJAX). Однако возник вопрос: Каким образом генерировать оповещения для всех пользователей с помощью одного запроса?. Итак подробнее о проблеме:

Структура таблицы пользователей:
|--id--|--login--|--password--| ...
| 51 | duck64 | md5 |
|-----------------------------------------|
Касаемо таблицы пользователей никаких комментариев смысла делать нет, итак все ясно.

Таблица нотайсов:
|id|-userid-|--title--|--message--|-type-|
| 1 | 51 | Ошибка | Сервер не ответил... | 3 |
| 2 | 51 | Успешно | Данные обновлены... | 1 |
|---------------------------------------------------------------------------|

Ну тут все просто:
Поле Type - отвечает за тип сообщения, 0 - информация, 1 - успешно, 2 - предупреждение, 3 - ошибка. Все остальное итак понятно. userid - внешний ключ на ID в таблице пользователей.

А теперь представьте ситуацию: В системе произошло какое-то действие, о котором нам бы хотелось оповестить всех пользователей с помощью NOTICE системы. Таким образом нам необходимо вставить в таблицу нотайсов сообщение для каждого пользователя. Как быть ?

Варианты в духе SELECT ... foreach ... insert не рассматриваем. Спасибо!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.11.2013, 12:15
Ответы с готовыми решениями:

Система тестирования php+mysql
Создаю систему тестирования. Возникли такие проблемы: 1.нет перехода на следующий вопрос. 2.всегда правельный первый вариант(как...

Система друзей и ее реализация php mysql
Всем привет, кто может мне помочь с реализацией система друзей на сайте? Сколько таблиц надо сколько полей для нее, как реализуется...

Delphi+Word+MySQL(Firebird)+php система оценки знаний!
Здравствуйте дорогие форумчане! Есть такая глобальная задача - создать программную оболочку для системы оценки знаний, то есть создать...

4
 Аватар для JxF-TEAM
122 / 122 / 27
Регистрация: 22.10.2013
Сообщений: 425
14.11.2013, 12:52
конкретней сформулируйте задачу
0
1 / 1 / 0
Регистрация: 30.05.2010
Сообщений: 10
14.11.2013, 13:41  [ТС]
Цитата Сообщение от JxF-TEAM Посмотреть сообщение
конкретней сформулируйте задачу
Грубо говоря вопрос в том чтобы вставить в таблицу выборку из другой таблицы + доп поля.
Например есть у нас юзера с номерами : 1,2,3,4,5,6,7,8,9.... 1005 (всего в системе 1005 пользователей)
одним запросом я хочу создать нотайсы для каждого. Тоесть чтобы результатом выполнения запроса было:

id | userid |--- title ---| --message-- |- type- |
1 | 1 | Сообщение | Сообщение | 1
2 | 2 | Сообщение | Сообщение | 1
3 | 3 | Сообщение | Сообщение | 1
4 | 4 | Сообщение | Сообщение | 1
...
1005 1005

есть тупой способ вот такой возможно если напишу вы лучше поймете что я хочу
PHP
1
2
3
4
5
6
#Собераем пользователей, чтобы слегка оптимизировать берем только живых (абстрактно)
$result = mysql_query("SELECT `id` from `users` where `last_activity` > CURR_DATE - 1 DAY");
while($row = mysql_fetch_array($result)){
  mysql_query("INSERT INTO `notices`(`id`,`userid`, `title`,`message`,`type`) VALUES(NULL, $row['id'] , 'Заголовок', 'Текст сообщения', '1');
}
#ужасыphp
Запросов в базу будет ровно столько сколько нашлось пользователей по первой выборке... ИМХО БРЕД. Подскажите как переложить данную задачу на MYSQL.
0
 Аватар для JxF-TEAM
122 / 122 / 27
Регистрация: 22.10.2013
Сообщений: 425
14.11.2013, 14:53
PHP
1
2
3
4
mysql_query ("
INSERT INTO `notices`(`id`,`userid`, `title`,`message`,`type`)
    SELECT Null, `id`, 'Заголовок', 'Текст сообщения', '1' from `users` where `last_activity` > CURR_DATE - 1 DAY
");
вот так можна... но толька за место титле мессадже и тайп будет одно и тоже'Заголовок', 'Текст сообщения', '1' в всех 1005
1
1 / 1 / 0
Регистрация: 30.05.2010
Сообщений: 10
14.11.2013, 15:02  [ТС]
Цитата Сообщение от JxF-TEAM Посмотреть сообщение
PHP
1
2
3
4
mysql_query ("
INSERT INTO `notices`(`id`,`userid`, `title`,`message`,`type`)
    SELECT Null, `id`, 'Заголовок', 'Текст сообщения', '1' from `users` where `last_activity` > CURR_DATE - 1 DAY
");
вот так можна... но толька за место титле мессадже и тайп будет одно и тоже'Заголовок', 'Текст сообщения', '1' в всех 1005
Спасибо! Подзапросы это вообще нормальная тема? А то я слышал гуру строители БД плюются от таких штук.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.11.2013, 15:02
Помогаю со студенческими работами здесь

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in z:\home\localhost\www\php\mysql.php on line 16
Не могу подключиться к базе...устал все перепроверять переписывать и пересоздавать... Я недавно тока занялся php начал изучать курс...

Как изучать mysql и php? Сначала php, а потом mysql или наоборот, или сразу?
Хочу изучить mysql и php. Как их изучать? Сначала php, а потом mysql или наоборот, или сразу и то и то? Посоветуйте хорошую литературу.

Подключение к БД MySQL. Xamarin Studio: C#-PHP-MySQL
Здравствуйте! Возникла проблема подключения к удаленной БД MySQL. Пишу Android-приложение в Xamarin Studio на C#. Хочу сделать...

Подключение к БД MySQL. Xamarin Studio: C#-PHP-MySQL
Здравствуйте! Необходимо реализовать подключение к удаленной БД MySQL. Пишу Android-приложение в Xamarin Studio на C#. Хочу сделать...

Выводится php-код в браузер после установки php+apache+mysql
Навеяло отсюда: https://www.cyberforum.ru/php-beginners/thread839975.html Установила по инструкции...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru