2013-02-22 6 views
0

В моей базе данных MySQL У меня есть таблица вроде этого:Заполнение Флажки из базы данных MySQL

Column  Value 
---------------------------------- 
Id   int pk autoinc 
Name  varchar(50) 
Choices  set('a', 'b', 'c', ...) 
...   ... 

Когда эти данные обновляются, я ищу, чтобы иметь много флажков, отображаемых с каждым флажком, представляющих члена Выбор. С каждым Флажок создается в PHP похожее на это:

echo "<input type=Checkbox name=$choiceName[i] value=$choiceName[i]>" 

Мой вопрос заключается в том, как я создаю эти флажки из и заполнить их (проверяется или нет) для конкретного Id в таблице.

+1

[? Что вы пробовали] (http://www.whathaveyoutried.com/) См [советуетесь] (http://stackoverflow.com/questions/ спросите совета), пожалуйста. –

+0

Вы даже сделали какое-либо исследование? Это не место для «дайте мне». Это помогает при возникновении ошибок. – UnholyRanger

+0

какая это база данных? как вы создаете флажки HTML-формы? Невозможно помочь вам без подробностей ... – ducin

ответ

4

я наконец нашел решение.

Чтобы получить разрешенные значения в столбце Choice, который имеет тип данных set. Вы должны сделать что-то вроде следующего:

$result = mysql_query("SHOW COLUMNS FROM Table LIKE 'Choice'"); 
    $line = mysql_fetch_array($result); 
    //Remove the unwanted characters from the Type 
    $set = substr($line['Type'],5,strlen($line['Type'])-7); 
    //An array containing all allowed members from the Choice set 
    $choices = preg_split("/','/",$set); 

    $result = mysql_query("SELECT * FROM Table WHERE Id=$someId"); 
    $row = mysql_fetch_row($result); 
    $selected = explode(',', $row[$indexOfChoicesColumn]); 
    $j=0; 
    for($i=0; $i<count($days); $i++){ 
    if($j<count($selected) && $selected[$j] == $choices[$i]){ 
     echo $choices[$i]." <input type='checkbox' name='choices[]' value='". $choices[$i] ."' checked> "; 
     $j++; 
    } 
    else echo $choices[$i]." <input type='checkbox' name='choices[]' value='". $choices[$i] ."'> "; 
    } 
0

Пример:

//or you can obtain $choices = $row['Choices']; from your DB, its the same 

$choices = "Example1,Example4,Example10"; 
$arrChoices = explode(',', $choices); 

foreach ($arrChoices as $key => $value) { 
echo "<input type='checkbox' name='$value' value='$value'/>"; 
} 

Saludos;)

+0

Мне нужно получить выбор прямо из набора, а не жестко-кодировать их. –

+0

Покажите мне пример выбора из таблицы данных;) – Hackerman

+0

Они все строки. –

Смежные вопросы