我正在尝试从我的数据库中收集随机数量的成员,获取他们的ID号并使用它们使用id和来自同一页面的一些发布信息将多个条目插入到另一个表中。
当前(非工作)代码:
if($_POST["Submit"] == "Send Mail") {
$rid = $_SESSION["userid"];
//is amount of members sending to
$to = $_POST["credits"];
$messaging = $_POST["message"];
$sub = $_POST["subject"];
///need all ids for amount of membes sending to
$getodds = mysql_query("select Id from `oto_members` ORDER BY RAND() Limit '$to';");
...
///insert a new line for each member sending to using ids from $getodds query
@mysql_query("INSERT INTO `mp_creditmail` (`Id`, `message`, `subject`, `read`) VALUES ('$values', '$messaging', '$sub', no) or die(mysql_error());
}
答案 0 :(得分:1)
在SQL中,可以在带有查询的表中插入多个记录。您可以查看以下链接。 http://dev.mysql.com/doc/refman/5.0/es/insert-select.html
查看示例可以使用以下语句来满足您的需求。
///insert a new line for each member sending to using ids from $getodds query
@mysql_query("INSERT INTO 'mp_creditmail' ('Id', 'message', 'subject', 'read') SELECT oto_members.Id, '$messaging', '$sub', 'no' FROM oto_members ORDER BY RAND() Limit '$to';");
答案 1 :(得分:0)
我正在尝试回答您的问题,但您的代码/问题有点不清楚。我假设你想在第二个查询中使用$ getodds中获得的id,其中'$ values'是。此外,如果您使用的是php 5或更高版本,则应使用非弃用的查询函数,如mysqli_query()
foreach($getodds as $values) {
@mysql_query("INSERT INTO `mp_creditmail` (`Id`, `message`, `subject`, `read`)
VALUES ($values, $messaging, $sub, 'no')" or die(mysql_error());
}
mysqli_query()看起来像这样
$link = mysqli_connect("localhost", "my_user", "my_password", "database");
foreach($getodds as $values) {
$query = "INSERT INTO `mp_creditmail` (`Id`, `message`, `subject`, `read`)
VALUES ($values, $messaging, $sub, 'no')";
$result = @mysqli_query($link, $query)
}
希望这会有所帮助。如果没有,请尝试澄清您的问题。