从数据库中提取数组以用作复选框

时间:2012-02-22 17:40:08

标签: php mysql

我的数据库中有一个名为 Weeks 的字段,其中的条目格式为 1,2,3,4 1,3,5,6 < / em>范围从最小1到最大12 。我想知道如何使用SQL从字段中选择并将其输出为复选框。

例如,如果Weeks的值为 1,2,3,4 ,则结果输出将是以下一系列复选框:

checked Week 1
checked Week 2
checked Week 3
checked Week 4
unchecked Week 5
unchecked Week 6
unchecked Week 7
unchecked Week 8
unchecked Week 9
unchecked Week 10
unchecked Week 11
unchecked Week 12

3 个答案:

答案 0 :(得分:2)

如果您有一系列已检查的周(即array(1, 3, 6, 7)),您可以循环使用12周,看看是否应检查当前周。

$selected_weeks = array(1, 3, 6, 7); // retrieve this from database
for($i=0; $i<12; $i++) { // loop twelve times
    $checked = in_array($i, $selected_weeks) ? ' checked="checked"' : '';
    echo '<input type="checkbox" name="selected_weeks[]" value="'. $i . '"'. $checked . ' />';
}

答案 1 :(得分:1)

我将假设您能够从数据库中提取数据,并且您正在寻找PHP代码来创建复选框。

$result = <YOUR DB RESULTS>;
$checked_array = explode(',', $result);


for ($i = 1; $i <= 12; $i++)
{
    $checked = (in_array($i, $checked_array)) ? 'checked="checked"' : '';

    echo '<input type="checkbox"' . $checked . ' /> Week ' . $i;
}

答案 2 :(得分:0)

Sory粗鲁,但你正试图让别人解决你的问题......

无论如何尝试打印从1到12的所有复选框,并且在每个复选框上,如果当前编号位于数据库的数组中,则应检查in_array()。如果所有选定的值都存储在一个列中,您可能必须将db字段拆分为“,”以使其成为一个数组...

如果出现任何问题,请尝试并回写。