2

1.) 你能在 while 循环中嵌套一个 msqli_query 吗?

2.) 如果是,为什么下面的 PHP 不会向 precords 表写入任何数据?

如果我回显一个 $build 数组变量,它会正确显示,但 mysqli 插入不会向数据库中的表写入任何内容。代码不会在任何地方出错,所以我错过了什么?

$data = mysqli_query($con,"SELECT * FROM Cart WHERE Buyer_ID='$_SESSION[cid]' AND Cart_Date='$_SESSION[cdate]'");
while($build = mysqli_fetch_array($data))
{ 
//echo $build[idex]."<br>";
mysqli_query($con,"INSERT INTO precords (precord,Buyer_ID,Account,Purchase_Date,Item_Number,Item_Qty,Item_Title,Item_FPrice,Item_FFLFlag,ccpass) VALUES ('$build[idex]','$build[Buyer_ID]','$build[Cart_Date]','$build[Item_Number]','$build[Item_Qty]','$build[Item_Title]','$build[Item_FPrice]','$build[Item_FFLFlag]','N')");
};

谢谢你的帮助。

** PS - 此代码旨在将某些值从 TEMPORARY 表/会话变量移动到永久记录表,但由于购物车中有多个产品与用户/会话相关联,因此需要循环。

4

2 回答 2

2

是的,您可以循环使用它

您可能想添加 mysql_error()功能以找出问题所在并尝试修复它或将错误添加到问题中,以便我们告诉您该怎么做

$data = mysqli_query($con,"SELECT * FROM Cart WHERE Buyer_ID='$_SESSION[cid]' AND Cart_Date='$_SESSION[cdate]'");
while($build = mysqli_fetch_array($data))
{ 
    // echo $build[idex]."<br>";
    mysqli_query($con,"INSERT INTO precords(precord,Buyer_ID,Account,Purchase_Date,Item_Number,Item_Qty,Item_Title,Item_FPrice,Item_FFLFlag,ccpass) 
                       VALUES ('$build[idex]','$build[Buyer_ID]','$build[Cart_Date]','$build[Item_Number]','$build[Item_Qty]','$build[Item_Title]','$build[Item_FPrice]','$build[Item_FFLFlag]','N')")
        or die (mysql_error());
};
于 2013-07-03T20:26:39.430 回答
0

当您想从数据库中获取数据以显示在 html 列表中时,以简化的形式我故意添加了mysqli ORDER BY,它只有两个顺序ASC[ascending]DESC[descending],我还使用了mysqli LIMIT,我将其设置为3含义从数据库中提取的结果数应该只有三行

我同意 ali alomoulim 的回答 https://stackoverflow.com/users/2572853/ali-almoullim

MYSQLI ORDER BY AND LIMIT 时循环的简化代码

$usersQuery = "SELECT * FROM account ORDER BY acc_id DESC LIMIT 3";
$usersResult=mysqli_query($connect,$usersQuery);
while($rowUser = mysqli_fetch_array($usersResult)){ 
echo $rowUser["acc_fullname"]; 
}
于 2020-03-11T15:39:49.087 回答