我的选项有问题如果我在查询中嵌入DISTINCT
,我就有value= ""
。如果我去掉DISTINCT
,我就有了value= "1"
,我需要这个。
$query_result = mysqli_query($db, "SELECT DISTINCT C.name FROM Category AS C INNER JOIN MarketProduct AS MP ON C.Category_ID = MP.ID_Category WHERE MP.ID_Market ='$id'");
<select name="ID_Category">
<?php
while($row = mysqli_fetch_array($query_result)){
?>
<option value="<?php echo $row['ID_Category'] ; ?>"><?php echo $row['name'] ; ?></option>
<?php
}
?>
</select>
使用GROUP BY
而不是DISTINCT
。见下文:
$query_result = mysqli_query($db, "SELECT C.name FROM Category AS C INNER JOIN MarketProduct AS MP ON C.Category_ID = MP.ID_Category WHERE MP.ID_Market ='$id' GROUP BY C.name");
问题不在于DISTINCT运算符。您在查询中只选择了一个字段,即名称。您还需要选择ID_Category字段。有点像:
SELECT DISTINCT C.name, C.Category_ID FROM Category AS C INNER JOIN MarketProduct AS MP ON C.Category_ID = MP.ID_Category WHERE MP.ID_Market ='$id'