查询结果数组在循环中用于另一个查询


query result array in loop for another query

我查询了数据库表'users'中的'user_id'。并获得一个id数组。

$sel = "SELECT user_id FROM users WHERE status='Approved'";     
$result = @mysqli_query ($dbcon, $sel); 

然后在另一个表income中插入所有这些用户id的值。

while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) 
{
$ins = "INSERT INTO income (user_id, income_amount)  VALUES ('$row', '100')";       
$giv = @mysqli_query ($dbcon, $ins);
}

注意:数组到字符串的转换在E:'xampp'htdocs'project't.p p第109行

有谁能帮我解决这个问题吗?
$sel = "SELECT user_id FROM users WHERE status='Approved'";     
$result = @mysqli_query ($dbcon, $sel); 
while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) 
{
$ins = "INSERT INTO income (user_id, income_amount)  VALUES ('" . $row['user_id'] . "', '100')";       
$giv = @mysqli_query ($dbcon, $ins);
}

首先,检查$results是否在数组中。你可以把一些错误处理检查is_array($result)。

如果它是好的,然后传递给mysqli_fetch_array()。开发时不要添加suppress @ error

我想建议您对此进行单个查询,以便在此之后您无需使用while循环将数据插入收入表:

试试吧:

INSERT INTO income (user_id,income_amount) SELECT user_id,'100' AS income_amount FROM users WHERE status = 'Approved';

你可以这样使用:

$sel = "INSERT INTO income (user_id,income_amount) SELECT user_id,'100' AS income_amount FROM users WHERE status = 'Approved'";     
$result = @mysqli_query ($dbcon, $sel);