【发布时间】:2018-04-20 04:13:47
【问题描述】:
我的数据库中有这些表
table 1 命名为“store_item_stock”
table 2 命名为“store_item_color”
我正在使用以下代码来创建项目名称及其各自代码的下拉列表:
//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();
但是,当我运行此代码时,选择包含 3 empty strings。 我试过 var dumping 并得到了这个:
1array(2) { [0]=> string(1) "1" ["color_id"]=> string(1) "1" }
1array(2) { [0]=> string(1) "1" ["color_id"]=> string(1) "1" }
1array(2) { [0]=> string(1) "1" ["color_id"]=> string(1) "1" }
我可以做些什么来解决这个问题并让颜色的名称显示在下拉列表中。
【问题讨论】:
-
表1和表2的名称是什么?
-
表 1 被命名为 'store_item_stock' 表 2 被命名为 'store_item_color'