PHP/MySQL查询不工作?

PHP/MySQL查询不工作?,php,mysql,Php,Mysql,我的数据库中有这些表 命名为“商店商品库存” 命名为“商店\商品\颜色” 我使用以下代码创建项目名称及其相应代码的下拉列表: //get colors $get_colors_sql = "SELECT DISTINCT color_id FROM store_item_stock WHERE item_id = '" . $_GET["item_id"] . "' ORDER BY color_id"; $get_colors_res

我的数据库中有这些表

命名为“商店商品库存”

命名为“商店\商品\颜色”

我使用以下代码创建项目名称及其相应代码的下拉列表:

//get colors
$get_colors_sql = "SELECT DISTINCT color_id FROM store_item_stock WHERE item_id = '" . $_GET["item_id"] . "' ORDER BY color_id";
$get_colors_res = $conn->query($get_colors_sql) or die("Couldn't connect :" . $conn->error);


$colors = $get_colors_res->fetch_array();
//if the item has colors
if ($get_colors_res->num_rows > 0 && !is_null($colors['color_id'])) {
    //create select statement
    $display_block .= "<p><strong>Available colors:</strong><br/>
   <select name=\"sel_item_color\">";

    do {
        $item_color = $colors['color_id'];
        //query the name belonging to that id
        $get_item_color_name_sql = "SELECT * FROM store_item_color WHERE color_id = ".$item_color;

        $get_item_color_name_res = $conn->query($get_colors_sql) or die("Couldn't connect :" . $conn->error);
        $color_name = $get_item_color_name_res->fetch_array();
        echo $color_name['color_id'];

        $display_block .= "<option value=\"" . $item_color . "\">" . $color_name['item_color'] . "</option>";

        echo "<pre>".var_dump($color_name)."</pre>";
    }while ($colors = $get_colors_res->fetch_array());
}

$display_block .= "</select>";

//free result
$get_colors_res->free();
$get_item_color_name_res->free();
//获取颜色
$get\U colors\U sql=“从门店商品库存中选择不同的颜色商品标识,商品标识=”$_获取[“项目id”]。“‘按颜色和id排序’;
$get\u colors\u res=$conn->query($get\u colors\u sql)或die(“无法连接:”。$conn->错误);
$colors=$get_colors_res->fetch_array();
//如果项目有颜色
如果($get\u colors\u res->num\u rows>0&&!为空($colors['color\u id'])){
//CREATESELECT语句
$display_block.=“可用颜色:
"; 做{ $item_color=$colors['color_id']; //查询属于该id的名称 $get\U item\U color\U name\U sql=“选择*自商店\U item\U color,其中color\U id=”.$item\U color; $get\u item\u color\u name\u res=$conn->query($get\u colors\u sql)或die(“无法连接:”.$conn->错误); $color\u name=$get\u item\u color\u name\u res->fetch\u array(); echo$color_name['color_id']; $display_block.=''.$color_name['item_color']。''; echo“.var_dump($color_name)。”; }而($colors=$get\u colors\u res->fetch\u array()); } $display_block.=''; //自由结果 $get_colors_res->free(); $get\u item\u color\u name\u res->free();
但是,当我运行此代码时,select包含。 我尝试过var转储,得到了以下结果:

数组(2){[0]=>string(1)“1”[“color_id”]=>string(1)“1”}

数组(2){[0]=>string(1)“1”[“color_id”]=>string(1)“1”}

数组(2){[0]=>string(1)“1”[“color_id”]=>string(1)“1”}


我可以做些什么来修复此问题并使颜色名称显示在下拉列表中。

根据您的var\u dump
$color\u name
不包含
项颜色的索引。因此,空选择

我认为您在
do
循环中的查询是错误的,应该是


表1和表2的名称是什么?表1被命名为“商店商品库存”表2被命名为“商店商品颜色”
$get_item_color_name_res = $conn->query($get_item_color_name_sql) or die("Couldn't connect :" . $conn->error);