Заполните поле со списком PHP, используя значения перечисления поля базы данных MySQL - PullRequest
1 голос
/ 23 августа 2011

Я хотел бы создать поле со списком (в конце концов, оно будет работать с помощью 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.Я бы хотел, чтобы поля со списком в этом порядке были предпочтительнее.

1 Ответ

2 голосов
/ 23 августа 2011

Вы можете использовать:

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

Это вернет что-то вроде этого:

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

Что бы вы могли разобрать в php. Тем не менее, я думаю, что было бы лучше поддерживать список в коде или другой таблице, чем в виде значений enum.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...