从mysqli_fetch_array分组值

时间:2013-07-15 19:36:10

标签: php mysql forms mysqli group-by

我正在整理一个只有两者基本知识的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)。

enter image description here

我理解使用GROUP BY可能会实现这一点,但是当我在我的代码中包含GROUP BY时,我的下拉菜单结果为空。

$query = "SELECT * FROM test GROUP BY group";

我使用GROUP BY犯了错误吗?

注意:“group”是我要提取的列的ID。

1 个答案:

答案 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