PHP:从MYSQL数据库创建选择选项?

时间:2015-10-02 10:53:18

标签: php mysql

我正在尝试从MYSQL数据库创建多个选择下拉列表!

基本上我需要根据给定的子类别创建选择下拉列表,并将创建的下拉菜单中与op_value相关的每个sub_cate_name作为选项。

目前,我的代码会创建下拉列表并选择选项但是它会将它们放在单独的选择dropdwons和整个地方。

例如:如果我们将sub_cate_name设为Apples而将op_value设为Reds, Greens, Yellows,则会创建2个选择下拉菜单,并将它们拆分为op_value是(红色,绿色,黄色)作为选择的选项,无论喜欢哪里!

但是我需要它来确保它创建1个选择下拉菜单作为苹果并在苹果下拉列表中选择与苹果相关的op_value作为选项!

这是代码似乎有自己的想法,因为它有时有效,而不是其他人!

这是整个代码:

$drops ="";

$sql44 ="SELECT * FROM drop_options WHERE sub_cat_name='$currentproduct'";

$query44 = mysqli_query($db_conx, $sql44);
$productCount44 = mysqli_num_rows($query44);
if ($productCount44 > 0) 
{
    $op_name = '';
    $first = 0;

    while($row44 = mysqli_fetch_array($query44, MYSQLI_ASSOC))
    {


            $op_value = $row44["op_value"];

            if($op_name != $row44["op_name"])
            {
               if($first)
                {
                    $drops .='</select></div>';
                }

                $op_name = $row44["op_name"];

                $drops .='<div class="col-md-3 col-xs-12">
                <p class="margin-bottom-zero">'.$op_name.'</p>
                <select name="keyword[]" class="selectpicker">

                <option value="'.$op_value.'">'.$op_value.'</option>';
            }
            else
            {
                $drops .= '<option value="'.$op_value.'">'.$op_value.'</option>';
            }

            /*$first = 1;*/
            $first++;
    }
} 
else 
{
    $drops ='';
}
$drops .='</select></div>';
echo $drops;

有人可以就此问题提出建议吗?

任何帮助将不胜感激。

编辑:

好的,现在我尝试了这种方式,我可以得到确切数量的选择下拉菜单:

if($db_conx->connect_errno > 0){
    die('Unable to connect to database [' . $db_conx->connect_error . ']');
};


// Perform queries
$sql45 = "SELECT DISTINCT op_name FROM drop_options WHERE sub_cat_name='Custom Booklets";
$result45 = $db_conx->query($sql45);

//echo '<li class="product-types">';


foreach ($result45 as $menu45)
{
    // echo "<li>".$menu["cat_name"];
echo '<div class="col-md-3 col-xs-12">
                <p class="margin-bottom-zero">'.$menu45["op_name"].'</p>
                <select name="keyword[]" class="selectpicker">';




     //echo "<ul>";
    $menu_title45 = $menu45["sub_cat_name"];

    $sql455 = "SELECT * FROM drop_options WHERE op_name='".$menu45["op_name"]."'";    

    $result455 = $db_conx->query($sq455);
    foreach ($result455 as $submenu455)
    {
        //echo "<li>".$submenu["sub_cat_name"]."</li>";

        echo '<option value="'.$submenu455["op_value"].'">'.$submenu455["op_value"].'</option>';
    }
     echo "</select>";
     echo "</div>";
}


//echo "</ul>";
$db_conx->close();

但我没有创建任何选择选项我也收到此错误:Warning: Invalid argument supplied for foreach() in line 18

这是第18行:foreach ($result45 as $menu45){

知道我做错了什么?

1 个答案:

答案 0 :(得分:0)

这就是你的代码应该是这样的 -

    // Perform queries
    $sql45 = "SELECT DISTINCT op_name FROM drop_options WHERE sub_cat_name='Custom Booklets'";
    $result45 = $db_conx->query($sql45);

    //echo '<li class="product-types">';


    while ($menu45 = mysqli_fetch_array($result45,MYSQLI_ASSOC))
    {
        // echo "<li>".$menu["cat_name"];
        echo '<div class="col-md-3 col-xs-12">
            <p class="margin-bottom-zero">'.$menu45["op_name"].'</p>
            <select name="keyword[]" class="selectpicker">';


        //echo "<ul>";
        $menu_title45 = $menu45["sub_cat_name"];

        $sql455 = "SELECT * FROM drop_options WHERE op_name='".$menu45["op_name"]."'";

        $result455 = $db_conx->query($sql455);
        while($submenu455 = mysqli_fetch_array($result455,MYSQLI_ASSOC))
        {
            //echo "<li>".$submenu["sub_cat_name"]."</li>";

            echo '<option value="'.$submenu455["op_value"].'">'.$submenu455["op_value"].'</option>';
        }
        echo "</select>";
        echo "</div>";
    }


    //echo "</ul>";
    $db_conx->close();

您可能需要添加if条件以检查是否确实存在选择选项,因此您不会以空选择结束。