php - (PHP) 'If' 语句仅在一侧回显,它会更改为 'else' 并根据添加到购物车的产品更改回 'if'
问题描述
我将首先告诉您我想要的代码结果:我想回显以筛选销售价格(如果产品在数据库表中的销售中)和通常价格(如果产品不在数据库表中的销售)。
我试图创建一个 if 语句,我将在下面概述。
首先要做的事情是:我为产品表建立了一个变量,以便稍后在if
语句中使用。
$sql = "SELECT * FROM products WHERE id = ''";
$result = mysqli_query($conn, $sql);
$row = mysqli_fetch_array($result);
作为序言,我从提交的表单数据创建了一个数组:
$_SESSION['shoppingcart'][0] = array (
'id' => filter_input(INPUT_GET, 'ID'),
'price' => filter_input(INPUT_POST, 'hidden_price'),
'list_price' => filter_input(INPUT_POST, 'hidden_list_price'),
'quantity' => filter_input(INPUT_POST, 'quantity'),
);
然后我创建另一个数组,将数组中的id
列挑出来$_SESSION['shoppingcart']
。
$product_ids = array();
$product_ids = array_column($_SESSION['shoppingcart'], 'id');
所以,现在我想用循环遍历$productids
数组foreach
。
foreach ($_SESSION['shoppingcart'] as $key => $cartprod): ?>
现在是if
我一直在努力的声明:
(只是补充$row['sale]
一下,我的列是“是” - 表示出售 - 或“否” - 表示不出售。)
<?php if ($row['sale'] == "yes"){
echo '<td>£'.$cartprod['list_price'].'</td>';
}else{
echo '<td>£'.$cartprod['price'].'</td>';
}?>
<?php endforeach;?>
<?php endif;?>
因此,如果我将产品添加到array
正在销售的产品中,它可以正常工作,我可以添加它们并且它会整天echo
输出$cartprod['list_price']
,反之亦然 - 我可以将不在销售中的产品添加到阵列中会echo
出$cartprod['list_price']
。
当我尝试将array
正在销售的产品与不在销售中的产品一起添加时,麻烦就来了。它的一个或另一个,我不能有各种销售和非销售产品array
。
谁能告诉我我做错了什么?谢谢你读到这里:)。
解决方案
推荐阅读
- laravel - VueJS、Axios、Laravel - 捕获错误
- python - 如何进行嵌套的 jitclass 数组实例化
- django - 通过 URL 而不是 IP 地址访问本地 dockerized Django 项目
- javascript - 我使用 JavaScript 构建的砌体布局中的错误
- youtube-api - YouTube 的 PubSubHubbub:识别视频是新添加的还是仅更新的
- javascript - 从网站拖动文件并从桌面上传到 webiste 文件上传器
- apscheduler - 如何防止在 Flask APScheduler 中调用正在运行的作业
- visual-studio-code - Visual Studio Code - 禁用自动完成“<>”
- android - 如何在 QtWidgets 中使用 android 材质主题
- filter - Symfony 5 / EasyAdmin 3 / 尝试打开过滤器时出现异常