使用MySQL数据库字段枚举值填充PHP组合框

时间:2011-08-22 21:31:03

标签: php mysql database

我想创建一个组合框(最终使用jQuery Ajax操作它),该组合框填充了数据库表字段中的enum值。

我的目标是稍后使用这些选项来过滤页面上的mysql_query结果。

我认为最好的方法是echo整个表单和组合框,enum值作为option标记值。我不知道如何在第一时间调用enum值。

如果您对如何执行此操作有更好的建议,请告诉我们!

感谢。


我找到了以下代码,它似乎可以满足我的需求。但是,它似乎从我的表中获取了所有enum arrays,并将每个数组转换为一个组合框。这不是问题,因为我希望无论如何都要为每个单独的数组创建组合框。但是,我希望改变它的顺序。有什么办法可以编辑这段代码来控制每一组吗?或者甚至指定我想回应哪个字段,然后根据需要重复多次?我知道这样做意味着更多的代码,而且效率也不高。

PHP:

$table="images";
$describe=mysql_query("describe $table");
while ($ligne=mysql_fetch_array($describe)){
    extract($ligne);
    if (substr($Type,0,4)=='enum'){
        $liste=substr($Type,5,strlen($Type));
        $liste=substr($liste,0,(strlen($liste)-2));
        $enums=explode(',',$liste);
        if (sizeof($enums)>0){
            echo "<select name='enum'>\n";
            for ($i=0; $i<sizeof($enums);$i++){
                $elem=strtr($enums[$i],"'"," ");
                echo "<option value='".$elem."'>".$elem."</option>\n";
            }
            echo "</select>";
        }
    }
}

我想应该提一下,包含enums的三个字段是imgFamilyimgClassimgGender。我希望这个顺序的组合框最好。

1 个答案:

答案 0 :(得分:2)

您可以使用:

SELECT column_type FROM information_schema.columns WHERE table_name = :myTable AND column_name = :myColumn

这将返回如下内容:

enum('one','two','three')

你可以用PHP解析。但是,我认为在代码或其他表中维护列表可能比使用枚举值更好。