在mysql中显示特定的行

时间:2012-08-19 11:58:31

标签: php mysql

我有一张桌子,我需要获取所有数据,但我需要显示"类型"下拉列表中的列。现在我的桌子里有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,因为它不会在该类型下显示我需要的信息。我怎样才能做到这一点?谢谢!

3 个答案:

答案 0 :(得分:1)

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

SELECT DISTINCT type FROM table;

Read more about MySQL SELECT

答案 1 :(得分:0)

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

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

如果可以运行第二个查询,请阅读Alex Belyaev's answer

答案 2 :(得分:0)

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