我已经将下拉选择菜单中的多个选项保存到数据库字段中,并用逗号分隔它们。现在如何再次在下拉菜单中加载它们?它们被保存为:choice1
、choice2
、choice55
...等。目前我的查询连接了两个表,它看起来像这样:
$pdo = Database::connect();
$sql="SELECT t1.*, t2.*
FROM form_fields t1, user_choices t2
WHERE t1.field_name = t2.field_name
and group_id=1 and user_id=".$_SESSION['user_id']."
echo '<select class="form-control" name="program">';
foreach ($pdo->query($sql) as $row_program){
echo '<option value='.$row_program['field_name'].'>'.$row_program['field_name'].'</option>';
}
echo '</select>';
所以我需要显示列program
user_choices t2
的值。此查询显示列中只有一个值时的结果。但是当有多个值保存并带有逗号显示错误时
PHP Warning: Invalid argument supplied for foreach()...
根据需要尝试使用它program
列值:
<?php
$pdo = Database::connect();
$sql="SELECT t1.*, t2.*
FROM form_fields t1, user_choices t2
WHERE t1.field_name = t2.field_name
and group_id=1 and user_id=".$_SESSION['user_id']." ";
//$result = $pdo->query($sql);
echo '<select class="form-control" name="program">';
foreach ($pdo->query($sql) as $row_program){
$options = $row_program['program'];// as you need this column values
$optionsArr = explode(",", $options);
foreach ($optionsArr as $key=>$row){
echo '<option value='.$row[$key].'>'.$row[$key].'</option>';
}
}
echo '</select>';
?>
将explode()
与逗号一起使用,以便它为您提供选项数组,然后在下拉列表中设置动态选项值。
<?php
$pdo = Database::connect();
$sql="SELECT t1.*, t2.*
FROM form_fields t1, user_choices t2
WHERE t1.field_name = t2.field_name
and group_id=1 and user_id=".$_SESSION['user_id']." ";
echo '<select class="form-control" name="program">';
foreach ($pdo->query($sql) as $row_program){
$options = $row_program['field_name'];
$optionsArr = explode(",", $options);
foreach ($optionsArr as $row){
echo '<option value='.$row.'>'.$row.'</option>';
}
}
echo '</select>';
?>