使用 PDO,我收到 1+ 行并将它们变成这样的数组:
while($row = $car_sales->fetch(PDO::FETCH_ASSOC)){
$car_id_array[] = $row["car_id"];
$car_type_array[] = $row["car_type"];
$dealer_id_array[] = $row["dealer_id"];
$buyer_id_array[] = $row["seller_id"];
}
我试图简单地“混合”数组的每个级别作为一个单元并一起进入 foreach 循环,按顺序提交 $q 查询。换句话说,是这样的:
foreach($dealer_id_array as $dealer_id) {
if ($car_type=='new') {
if ($dealer_id==$buyer_id){
$q = 'UPDATE car_sales SET new_cars=new_cars+1 WHERE dealer_id=:dealer_id';
} else if ($dealer_id!=$buyer_id){
$q = 'UPDATE car_sales SET new_cars=new_cars-1 WHERE dealer_id=:dealer_id';
} else if ($car_type=='old') {
if ($dealer_id==$buyer_id){
$q = 'UPDATE car_sales SET old_cars=old_cars+1 WHERE dealer_id=:dealer_id';
} else if ($dealer_id!=$buyer_id){
$q = 'UPDATE car_sales SET old_cars=old_cars-1 WHERE dealer_id=:dealer_id';
}
$car_update = $dbhandle->prepare($q);
$car_update->execute(array(':dealer_id' => $dealer_id));
}
如果从 while 循环中仅检索到一个值,则该循环应使用第一个数组值运行。如果有更多,则 foreach 应该运行与 while 循环中的 Dealer_id 一样多的次数,同时尊重顺序。这个例子不起作用,但我正在寻找可能的解决方案来正确解决这个问题。您认为最有效的方法是什么?