Помощь с составлением запроса (DCMS)

1. Эльдар (08.08.2014 / 14:29)
Доброго времени суток. Пишу небольшой модуль - застрял в составлении простого запроса. Код ниже:
<?php
$message = "Тестовое сообщение";   
    
mysql_query("INSERT INTO `mail` (`id_user`, `msg`, `time`) values('1', '$message', '$time')");
?>
В общем, запрос должен сработать так: всем пользователям отправляется сообщение (хранится в $message). Как видите, поля id_kont в запросе нет, потому что по сути сообщение должно отправится всем пользователям, которые только зарегистрированы в таблицы `user`. Если нет значения у поля id_kont, то оно становится равным нулю. Как реализовать отправку сообщения всем пользователям? Знаю, что таблица mail будет забиваться, но все же. Если есть другие варианты решения проблемы - напишите пожалуйста. Заранее спасибо.

2. Евгений (08.08.2014 / 15:27)
нирвана... А не...нет сайта,не помогу...

Добавлено через 01:44 сек.
но...быть может...id_kont...должен всё-таки упоминаться?

3. Кевин Митник (08.08.2014 / 15:39)
сделай проверку на наличие сообщений в базе данных со значением id_kont = 0. И выводить пользователю.

4. Эльдар (08.08.2014 / 16:01)
Кевин Митник_HHTeam (8 Августа 2014 / 15:39)
сделай проверку на наличие сообщений в базе данных со значением id_kont = 0. И выводить пользователю.
Можно подробней, пожалуйста?
И кстати, можно ли решить эту задачу с помощью цикла?

5. Александр (08.08.2014 / 16:04)
<?php
$q=mysql_query("SELECT `id` FROM `user` WHERE `id` != $user[id]");
$msg=mysql_escape_string($msg);
while ($us = mysql_fetch_array($q))
{
if (mysql_result(mysql_query("SELECT COUNT(*) FROM `konts` WHERE `id_user` = '$us[id]' AND `id_kont` = '$user[id]'"), 0)==0)
{
mysql_query("INSERT INTO `konts` (`id_kont`, `id_user`, `time`) values('$user[id]', '$us[id]', '$time')");

}
$msg="куку";
mysql_query("INSERT INTO `mail` (`id_user`, `id_kont`, `msg`, `time`) values('$user[id]', '$us[id]', '$msg', '$time')");
mysql_query("UPDATE `konts` SET `time` = '$time' WHERE `id_user` = '$user[id]' AND `id_kont` = '$ank[id]' OR `id_user` = '$ank[id]' AND `id_kont` = '$user[id]'");
}
?>


6. Эльдар (08.08.2014 / 16:17)
5. DEMONS, спасибо, от души. Немного подправил (у меня этот код должен быть в файле регистрации), т.е., при регистрации юзера, всем пользователям отправляется сообщение о том, что новичек на сайте появился. Было бы круто, если б можно было не вставлять сотни строк в одну таблицу за раз smile Еще раз спасибо

7. Александр (08.08.2014 / 16:23)
6. MyZik, да не за что, был рад помочь =)

8. Кевин Митник (08.08.2014 / 16:57)
Автор, не в обиду сказано, но у тебя неправильно спроектированная структура базы данных. Для того чтобы разослать всем сообщения, ты вставляешь записей столько же, сколько пользователей. Я так думаю что написать за пол-часа возможность системных оповещений - это не сложно?

9. Эльдар (08.08.2014 / 18:16)
Кевин Митник_HHTeam (8 Августа 2014 / 16:57)
Автор, не в обиду сказано, но у тебя неправильно спроектированная структура базы данных. Для того чтобы разослать всем сообщения, ты вставляешь записей столько же, сколько пользователей. Я так думаю что написать за пол-часа возможность системных оповещений - это не сложно?
Я предлагал заказчику такой вариант - написать отдельный модуль, События сайта, ибо самому не нравится такое вот положение дел - покупатель сказал, что пока не видит необходимости

10. shilo (09.08.2014 / 17:55)
9. MyZik, зато он видит необходимость делать несколько сотен запросов в базу в цикле. За такое нормальные люди отрубают руки

URL: https://visavi.net/topics/41132