早上好
我不愿打扰所有人,这可能是所有问题中最简单的问题/解决方案,但是无论我在堆栈上已经读过的最新文章是什么,甚至我自己尝试的解决方案,我似乎都不会感到困扰”似乎没有我要的答复。
这整周我一直在努力的工作是能够从发票清单中获取用户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,而不能提交其他任何内容。
答案 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;
}