0

我有一个需要获取所有数据的表,但我需要在下拉列表中显示“类型”列。现在在我的桌子上有 2 个绿色、1 个红色和 3 个白色。

id  type_id     type        info1                   info2
1   1           green       some important data     some important data
2   1           green       some important data     some important data
3   2           red         some important data     some important data
4   3           white       some important data     some important data
5   3           white       some important data     some important data
6   3           white       some important data     some important data

我想像这样在 php 上显示它(如果代码不完整,请不要担心,我明白了:D),

<select>
 <?php
 foreach($result as $r):
 echo '<option>'. $r['type'] . '</option>';
 endforeach;

?>
</select>

这样做的问题是它在列(类型)中显示所有数据,我需要每个 type_id 显示 1 个。我不能使用 GROUP BY,因为它不会显示我在该类型下需要的信息。我怎样才能做到这一点?谢谢!

4

3 回答 3

1

在您的案例中获取类型列表的正确方法:

SELECT DISTINCT type FROM table;

阅读有关 MySQL SELECT的更多信息。

于 2012-08-19T12:06:40.930 回答
0

如果您不想运行第二个查询:

<select>
    <?php
        $type=array();
        foreach($result as $r):
            $type[$r['type']] = '<option>'. $r['type'] . '</option>';
        endforeach;
        echo implode("", $type);
    ?>
</select>

如果可以运行第二个查询,请阅读Alex Belyaev 的回答

于 2012-08-19T12:15:54.103 回答
0

首先,您需要使用选择查询从表中检索所有数据。在处理查询结果集时,您需要将类型字段的所有值存储到一个数组中,并将 array_unique 函数应用于包含类型值的数组,并使用 foreach 循环生成唯一数组,您可以填充具有不同类型值的下拉列表。此解决方案将消除第二次查询的使用,您将能够访问存储在表中的所有必需数据。

于 2012-08-19T14:49:47.500 回答