mysql如何向所有用户发送消息

t98cgbkg  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(520)

所以我试着给数据库中的所有用户发送一条消息。我看到了另一篇文章,但在那里它是用于电子邮件和逗号之间。我不知道,但也许有一些解决方案,这是正确地插入数据与所有的用户id。

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')";

在那之后它仍然不工作,这是因为它在id之间使用逗号,并且只对电子邮件工作。在那之后,我搜索谷歌,但找不到任何关于它。
所以,我最后的希望是在这里,帮助其他人解决同样的问题。

uz75evzq

uz75evzq1#

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

-这里的'user\u id'值应该是单个user\u 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)]')"

但是在这种方法中,如果查询变得太大,或者如果在任何插入中有任何错误,那么剩余的插入将失败。

相关问题