WHILE循环中的mysqli查询

时间:2013-07-03 20:18:57

标签: php mysqli while-loop

1。)你可以在while循环中嵌入一个msqli_query吗?

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

如果我回显$ build数组变量,它会正确显示,但mysqli insert不会向DB中的表写入任何内容。代码在任何地方都没有错误,所以我对此缺少什么?

$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')");
};

感谢您的帮助。

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

2 个答案:

答案 0 :(得分: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());
};

答案 1 :(得分:0)

当您想从数据库中获取数据以显示在html列表中时,以简化的形式

我故意添加了 mysqli ORDER BY ,该命令只有两个顺序 ASC [升序] DESC [降序] ,我还使用了 mysqli LIMIT ,我将其设置为 3 表示从数据库中获取的结果数应该只有三行

我同意阿里·阿洛穆利姆的回答 https://stackoverflow.com/users/2572853/ali-almoullim

在MYSQLI按BY和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"]; 
}