即使在 PHP IF.. 语句之后,Select 选项仍然出现在页面上

Select option still appears on the page even after PHP IF.. statement

我正在使用 PHP 开发在线商店,因此在显示产品详细信息的 productdetails.php 处,我编写了以下代码:

if(!empty($pro_colors))
{
echo "
    <div class=''>
        <h4 class='' style='float:right'>&nbsp;:رنگ <span>*</span></h4>
        <select class='select-css'>      
        ";
        foreach($pro_colors as $colors)
        {
            echo "
                <option value='$colors'>$colors</option>
            ";                                          
        }
        echo "
        </select>
    </div></br>
";
}

所以它应该做的很简单,如果在数据库中向产品添加了任何颜色,它必须显示 select 选项,如果没有向数据库添加颜色,select选项一定不能出现!

但是当db上没有数据作为颜色时,它会显示:

然而,我的 table 看起来像这样:

所以请告诉我,我该如何解决这个问题?!

你必须检查颜色是否为空。像这样

      foreach($pro_colors as $colors)
        {

if (!empty($colors)) {
            echo "
                <option value='$colors'>$colors</option>
            ";  
                      }

        }

您首先使用了 if(!empty($pro_colors)) 实际上它不会检查每种颜色,因为 $pro_colors 是一个数组。

编辑:根据@hasta dhana 评论。首先你需要检查数据库是否有任何颜色数据。由于您没有完整的代码,我正在编写此示例代码以便您理解:

    $sql = "SELECT count(*) FROM tablenamehere WHERE product_colors != ''"; 
    $result = $con->prepare($sql); 
    $result->execute(); 
    $number_of_rows = $result->fetchColumn(); 

if ($number_of_rows > 0 ) {

echo "
    <div class=''>
        <h4 class='' style='float:right'>&nbsp;:رنگ <span>*</span></h4>
        <select class='select-css'>      
        ";
          foreach($pro_colors as $colors)
        {

if (!empty($colors)) {
            echo "
                <option value='$colors'>$colors</option>
            ";  
                      }

        }
        echo "
        </select>
    </div></br>
";
}

您的数组 $pro_colors 似乎有一个空值。您可以使用 array_filter

清除数组中的空值和空值
$pro_colors = array_filter($pro_colors);

if(!empty($pro_colors))
{
echo "
    <div class=''>
        <h4 class='' style='float:right'>&nbsp;:رنگ <span>*</span></h4>
        <select class='select-css'>      
        ";
        foreach($pro_colors as $colors)
        {
            echo "
                <option value='$colors'>$colors</option>
            ";                                          
        }
        echo "
        </select>
    </div></br>
";
}