我正在整理一个只有两者基本知识的PHP / mySQL表单。对于表单上的第一个下拉列表,我想从mySQL数据库中提取选项。我把它设置如下:
<?php
$query = "SELECT * FROM test";
$result = mysqli_query($link , $query);
?>
Select your group number:
<select name="group">
<?php
while ($line = mysqli_fetch_array($result, MYSQL_ASSOC)) {
?>
<option value="<?php echo $line['group'];?>"><?php echo $line['group'];?></option>
<?php
}
?>
</select>
然而,这会返回每个组值,即使它们是相同的,所以我最终得到重复(图1)。我想将所有相似的值分组(图2)。
我理解使用GROUP BY可能会实现这一点,但是当我在我的代码中包含GROUP BY时,我的下拉菜单结果为空。
$query = "SELECT * FROM test GROUP BY group";
我使用GROUP BY犯了错误吗?
注意:“group”是我要提取的列的ID。
答案 0 :(得分:1)
group不是一个字段的好名字,因为它是mysql中的保留字。
您可以这样做,但您的查询需要如下所示:
$query = "SELECT * FROM test GROUP BY `group`";
请阅读: How do I escape reserved words used as column names? MySQL/Create Table
并且: http://dev.mysql.com/doc/refman/5.1/en/reserved-words.html