我有一个包含不同产品的数据库。每种产品都有不同的颜色。我想要实现的是在下拉菜单中选择产品可用的颜色,然后使用所选颜色的产品加载页面。
我有以下内容: 该产品最初选择如下:
if (isset($_GET['product_id'])) {
$query_RS_Product = ("SELECT * FROM products WHERE id = :pid AND hidden ='no'");
$RS_Product = $conn->prepare($query_RS_Product) or die(errorinfo());
$RS_Product->bindValue(':pid', $_GET['product_id']);
$RS_Product->execute();
$row_RS_Product =$RS_Product->fetch();
现在我想选择适用于此产品的颜色并创建一个下拉菜单
<form><select name="productColor" id="pColor" class="dropmenu" >
<?php
$productcolor = $row_RS_Product['Model'];
$productcolor="SELECT * FROM products WHERE (Model = ':productcolor' AND hidden ='no' ORDER BY Color";
$resultp=$conn->prepare($productcolor);
$resultp->bindValue(':productcolor', $productcolor );
$resultp->execute();
while ($pcolor = $resultp->fetch($productcolor)) {
echo '<option value="Select Color">' . htmlspecialchars($pcolor['Color']) . '</option>';
}
?>
</select>
</form>
但是菜单不会填充 欢迎任何帮助
答案 0 :(得分:2)
转自(我的)评论。
这里有两个明显的错误WHERE (Model = ':productcolor'
1)应删除的(
括号;那是一个解析错误。
2)占位符周围的引号;那些需要删除。
然后$resultp->bindValue(':productcolor', $productcolor );
你无法绑定“查询”,你需要绑定一个值/数组。
您需要将$productcolor="SELECT ...
中的变量重命名为其他内容,并将变量用于(GET)数组。
PHP的错误报告和PDO错误处理在这里都会有所帮助。
参考文献: