我已将下拉选择菜单中的多个选项保存到数据库字段中,并用逗号分隔它们。我现在如何再次将它们加载到下拉菜单中?
它们保存为: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>';
所以我需要显示 user_choices t2
列 program
中的值。如果列中只有一个值,则此查询显示结果。但是当有多个值以逗号保存时显示错误
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>';
?>
关于php - 显示数据库中列的逗号分隔下拉值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36832490/