MySql, как я могу отправить сообщение всем пользователям PHP - PullRequest
0 голосов
/ 01 сентября 2018

Итак, я пытаюсь отправить сообщение всем пользователям в базе данных. Я видел другую статью, но там она использовалась для электронных писем и между ними были запятые. Я не знаю, но, возможно, есть какое-то решение для правильной вставки данных со всеми идентификаторами пользователей.

while($row = mysqli_fetch_array($result))
{
    $users[] = $row['ID']; 
}

$sendmes = "INSERT INTO notify (notfi, thumb_src, title, url, user_ID) VALUES ('$msg', '$src', '$title', '$url', '$users[]')";

Это дает Array (), но, похоже, не работает так.
Поэтому я использовал

$user = implode(", ", $users);

$sendmes = "INSERT INTO notify (notfi, thumb_src, title, url, user_ID) VALUES ('$msg', '$src', '$title', '$url', '$user')";

После этого он все еще не работает, потому что он использует запятые между идентификаторами и работает только для электронных писем. После этого я искал в Google, но ничего не мог найти по этому поводу.

Так что моя последняя надежда здесь и помочь другим с тем же вопросом.

1 Ответ

0 голосов
/ 01 сентября 2018
"INSERT INTO notify (notfi, thumb_src, title, url, user_ID) VALUES ('$msg', '$src', '$title', '$url', '$users[]')"

- Здесь значением 'user_ID' должно быть одно значение user_id, а не массив.

Вы можете проверить следующий запрос:

while($row = mysqli_fetch_array($result))
{
    $users[] = $row['ID']; 
}

foreach ($users as $user_id)
{
  $sendmes = "INSERT INTO notify (notfi, thumb_src, title, url, user_ID) VALUES ('$msg', '$src', '$title', '$url', '$user_id')";
  // Execute the Query;
}

Другой подход может быть: Вместо одного запроса для каждого пользователя, если вы хотите вставить их полностью, вы можете изменить свой запрос следующим образом:

"INSERT INTO tbl_name (notfi, thumb_src, title, url, user_ID)
 VALUES
    ('$msg', '$src', '$title', '$url', '$users[0]'),
    ('$msg', '$src', '$title', '$url', '$users[1]'),
    ('$msg', '$src', '$title', '$url', '$users[2]')
    ....
    ('$msg', '$src', '$title', '$url', '$users[(count($users) - 1)]')"

Но при таком подходе, если запрос становится слишком большим или если есть какая-либо ошибка в любой вставке, оставшаяся вставка завершится неудачей.

...