问:将数据插入循环语句

时间:2018-11-11 10:23:01

标签: php sql insert

早上好

我不愿打扰所有人,这可能是所有问题中最简单的问题/解决方案,但是无论我在堆栈上已经读过的最新文章是什么,甚至我自己尝试的解决方案,我似乎都不会感到困扰”似乎没有我要的答复。

这整周我一直在努力的工作是能够从发票清单中获取用户ID(uid),然后将该相同的ID插入到名为convo_sent的新表中,问题是以下代码(如下所示)在invoice_id中有多个字符串要提取时,不会多次插入内容:

SQL表:

**invoices** table.

Id | uid  | invoice_id
1  |  2   | 1     
2  |  20  | 3
3  |  4   | 10
4  |  60  | 1    


**convo_sent** table.

Id | uid  | sid  | action       | action_id | date | seen
1  |  1   | 90   |  sent        |     1     |  n/a | 1
2  |  10  | 85   |  sent        |     1     |  n/a | 0
3  |  7   | 270  |  no_payment  |     0     |  n/a | 0
4  |  6   | 400  |  sent        |     1     |  n/a | 1

有问题的脚本

 $sql="select uid from invoices where invoice_id = '1'";
 $res=mysql_query($sql);
 while($data_set=mysql_fetch_array($res))
 {
                $date=date("l, F j, Y h:i a", TIME());
                                    $sid=$_SESSION["mid"];
                                    $fid=$data_set["uid"];

                $sql="insert into convo_sent";
                $sql.="(uid";
                $sql.=", sid";
                $sql.=", action";
                $sql.=", action_id";
                $sql.=", seen";
                $sql.=", time)";

                $sql.=" values('$fid' ";
                $sql.=", '$sid'";
                $sql.=", 'test'";
                $sql.=", '0'";
                $sql.=", '0'";
                $sql.=", '$date')";
                $res = mysql_query($sql);
   $sr_no=$sr_no+1;
 }

我相信会发生的事情是,尽管该语句(本身,没有insert方法)能够遍历并提取所需的信息。当您尝试使用insert方法时,语句(循环)只能提交第一个用户ID,而不能提交其他任何内容。

1 个答案:

答案 0 :(得分:0)

我认为您覆盖了select语句($ res变量)。将$ res变量替换为循环。

$sql="select uid from invoices where invoice_id = '1'";
$res=mysql_query($sql);
while($data_set=mysql_fetch_array($res))
{
    // ...
    $sql="insert into convo_sent";
    // ...
    $status = mysql_query($sql);
    $sr_no=$sr_no+1;
}