php - 从使用 mysql 填充列表的所选选项中打印 2 个值

标签 php mysql select

我有一个正在处理查询的 mysql 连接。

<?php
$enlace = mysqli_connect ('localhost:3306',  'user', 'pass');

$consulta = "SELECT id, nameFROM dbapps.dbapp";
$result=mysqli_query($enlace, $consulta);
?>

我有一个包含 2 个值的 SELECT。 选项值=ID 描述 = id + 名称

<select name="sqllist[]" multiple> 
<?php 
while($row = mysqli_fetch_row($result))
{
    echo "<option value=" .$row['0'].">".$row['0']."  ".$row['1']."</option>";
}

?>
</select>

我正在获取选定的值,但我想通过一个变量获取选定的 id 以及与其他变量的 id 相关的名称

if(isset($_POST['submit'])){
    foreach ($_POST['sqllist'] as $select)
    {
        echo $select."<br>"; 
    }
}

Example

最佳答案

// Read all the results from the query
$rows = mysqli_fetch_all ( $result, MYSQLI_ASSOC);

// Id/name map
$names = array_column($rows, 'name', 'id');

// If the data was submitted, use it, otherwise, consider the list empty
$sqllist = isset($_POST['submit']) ? $_POST['sqllist'] : [];

// Create the select statement
<select name="sqllist[]" multiple> 
<?php 
foreach ($rows as $row)
{
    // If the id for this row is in the sqllist, set the selected attribute
    $selected = in_array($row['id'],$sqllist) ? 'selected' : '';
    echo "<option $selected value='" .$row['id']."'>".$row['id']."  ".$row['name']."</option>";
}
?>
</select>
<?php
foreach ($sqllist as $id) {
    echo $id.' '.$names[$id].'<br>';
}

关于php - 从使用 mysql 填充列表的所选选项中打印 2 个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53965777/

相关文章:

php - 自动换行避免每行单个单词

mysql - 索引的历史记录不足

javascript - 从 td :first row 获取数据字段

python - BeautifulSoup .select() 方法是否支持使用正则表达式?

php - 等待 $.each 在 $.getJSON 内完成

php - 编码 mysqli_fetch_assoc

mysql - 用mysql中同一表的其他列行的值更新行

sql - 返回团队成员多次被召回的日期

jquery - jqTransform Select 在 Fancybox 中不起作用

javascript - 使用框输入重定向页面