如何使用来自同一页面的其他数据查询和帖子的结果将多行插入数据库?

时间:2013-05-17 20:54:48

标签: php sql multiple-columns

我正在尝试从我的数据库中收集随机数量的成员,获取他们的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());

}

2 个答案:

答案 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)
}

希望这会有所帮助。如果没有,请尝试澄清您的问题。