PHP购物车场景下如何将产品ID存储到数组中
如何将购物车中的产品ID存储到数组中
嘿,这事儿其实很简单,咱们直接在你现有的代码基础上修改就行,给你两种实用的实现方式:
方式一:单独创建产品ID数组
如果你只需要单独存储所有产品ID,可以专门声明一个数组,然后在循环里把每个产品ID塞进去:
$cart_id = $_GET['cart_id']; $get_add = "SELECT * FROM cart WHERE cart_id = '$cart_id'"; $run_add = mysqli_query($con,$get_add); $cart_items = []; $total_price_to_pay = 0; // 新增:初始化存储产品ID的数组 $product_ids = []; while ($row_results = mysqli_fetch_array($run_add)){ $item = array( 'table_id' => $row_results['table_id'], 'cart_id' => $row_results['cart_id'], 'pro_id' => $row_results['product_id'], 'pro_title' => $row_results['product_title'], 'pro_price' => $row_results['product_price'] // 补全你原有的价格字段 ); $cart_items[] = $item; $total_price_to_pay += $item['pro_price']; // 把当前产品ID添加到数组里,两种写法都可以 $product_ids[] = $row_results['product_id']; // 或者用array_push:array_push($product_ids, $row_results['product_id']); } // 之后你就能直接用$product_ids数组了,比如打印验证: // print_r($product_ids);
方式二:从已有的购物车项数组中提取
如果你已经把所有购物车数据存在了$cart_items里,循环结束后可以用array_column函数快速提取所有产品ID,不用额外在循环里操作:
// 循环执行完后再提取 $product_ids = array_column($cart_items, 'pro_id');
重要小提醒
注意哦:你当前的SQL语句存在SQL注入风险,直接把$_GET['cart_id']拼进SQL里太不安全了。建议改用预处理语句,比如:
$cart_id = $_GET['cart_id']; // 预处理语句写法 $stmt = mysqli_prepare($con, "SELECT * FROM cart WHERE cart_id = ?"); // 绑定参数:如果cart_id是整数用"i",字符串用"s" mysqli_stmt_bind_param($stmt, "i", $cart_id); mysqli_stmt_execute($stmt); $run_add = mysqli_stmt_get_result($stmt); // 后续的循环逻辑和之前保持一致就行
这样能大大提升代码的安全性~
内容的提问来源于stack exchange,提问作者user9713482
相关产品推荐
相关产品推荐

