我正试图从我的数据库中收集随机数量的成员,获得他们的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());
}
在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';");
我想回答你的问题,但是你的代码/问题有点不清楚。我将假设您希望在第二个查询中使用'$values'所在的$getodds中获得的id。此外,如果您使用的是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)
}
希望这对你有帮助。如果没有,试着澄清你的问题。