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);