【发布时间】:2019-04-14 07:48:57
【问题描述】:
早上好,
我不想用可能是最简单的问题/解决方案来打扰大家,但似乎无论我读过哪些有关堆栈溢出的当前文章,甚至我自己尝试解决的问题,我都可以'似乎没有我正在寻找的回应。
我这一周一直在努力的工作是能够从发票列表中获取用户 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 方法时,可能语句(循环)只能提交第一个用户 ID,而不能提交其他任何内容。
【问题讨论】:
-
member_id表中的member_id列在哪里? -
@Samir - 更正了代码,抱歉。 $data_set["uid"] 替换 $data_set["member_id"] 并且 $_SESSION["member_id"] 替换为 $_SESSION["mid"];为了便于理解,代码本身已与原始代码进行了一些更改。
-
回显
$sql并检查它在while内循环了多少次。 -
@Samir - 好问题,会试试看。
-
@Samir - 只循环一次,它总是最后一个整数。