更新:不需要使用foreach,但这是我知道访问会话数组的唯一方法
我有一个会话数组,其中包含多个值。我想将这些值插入数据库。
这是我所做的:
我会使用一个foreach来获取并显示数组中的值,它可以正确执行此操作,但是如果我在foreach循环外调用该变量,则只会输出最后一个值。
为什么不只在每个for循环中插入?我不能,因为我尝试了它,也不会插入它,因为OrderDetails.OrderID可能不是NULL,这意味着没有orderID我就无法插入。
只是出于测试目的,我尝试了一个嵌套的foreach循环,其中包含插入内容,它可以正确显示所有内容,但显示结果乘以产品ID的数量。
输入示例:
[prodID] => array{
[0] => 25
[1] => 5
}
[qty] => array{
[0] => 3
[1] => 5
}
我给的代码将发送5个prodID和5个数量
我希望我的输出是:
25,5 prodID发送到数据库
3,5数量发送到数据库
我可以根据需要提供不同的示例。
<?php
//first file
session_start();
$prodID = $_SESSION['prodID'];
$quantity = $_SESSION['qty'];
$Oquery = "select * from Orders";
$result = $db -> Oquery($query);
while($row = $result -> fetch()){
$orderID = $row['OrderID'];
}
foreach($prodID as $arrayProd){
}
foreach($quantity as $arrayQuantity){
}
$sql = "INSERT INTO OrderDetails (OrderID,ProductID,Quantity)
Values('$orderID','$arrayProd','$arrayQuantity')";
$exec = $db -> exec($sql);
?>
<?php
//second file
session_start();
$orderNum = $_GET['orderID'];
$query = "SELECT * FROM OrderDetails WHERE OrderID = $orderNum";
$result = $db -> query($query);
while($row= $result->fetch(PDO::FETCH_ASSOC)){
$prodID = $nrow['ProductID'];
$quantity = $nrow['Quantity'];
echo"ProdID<br>
$quantity<br>";
}
?>
如果我理解正确的话,那么您不需要在每个人的第一个内的第二个foreach。基本上,1 foreach会做。例:
foreach($prodID as $key => $data)
{
$sql = "INSERT INTO OrderDetails (OrderID,ProductID,Quantity)
Values('$orderID','$data','$qty[$key]')";
$exec = $db -> exec($sql);
}
这是未经测试的空中代码。但是这个想法应该有所帮助。如有疑问,请发回。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句