Помощь с составлением запроса (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, спасибо, от души. Немного подправил (у меня этот код должен быть в файле регистрации), т.е., при регистрации юзера, всем пользователям отправляется сообщение о том, что новичек на сайте появился. Было бы круто, если б можно было не вставлять сотни строк в одну таблицу за раз
Еще раз спасибо
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