我想创建一个组合框(最终使用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
的三个字段是imgFamily
,imgClass
和imgGender
。我希望这个顺序的组合框最好。
答案 0 :(得分:2)
您可以使用:
SELECT column_type FROM information_schema.columns WHERE table_name = :myTable AND column_name = :myColumn
这将返回如下内容:
enum('one','two','three')
你可以用PHP解析。但是,我认为在代码或其他表中维护列表可能比使用枚举值更好。