php - 显示数据库中列的逗号分隔下拉值

标签 php mysql

我已将下拉选择菜单中的多个选项保存到数据库字段中,并用逗号分隔它们。我现在如何再次将它们加载到下拉菜单中? 它们保存为: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 t2program 中的值。如果列中只有一个值,则此查询显示结果。但是当有多个值以逗号保存时显示错误

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/

相关文章:

java - GitHub 文件夹中的 MySQL 数据库

java - 需要 Spring Boot CLIENT_PLUGIN_AUTH

mysql - 使用各种 SQL 语法创建自动关系

mysql - 对于社交网站来说,最好/最高效的 DBMS 是什么?

sql - MySQL-如何在邮政编码前面加上“0”?

php - 如何使用 PHP 向网页发出请求?

php - 为什么 unset() 在 PHP 三元运算符中不起作用

php - Xcode在mysql数据库中编辑和添加数据

php - SQL 执行速度慢

PHP/passthru/mysqldump 似乎超时