首页 > 解决方案 > (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

谁能告诉我我做错了什么?谢谢你读到这里:)。

标签: phpmysqlarraysif-statementforeach

解决方案


推荐阅读