php:通过 mysql 获取选项 select 值

php: get option select value by mysql

我正在尝试为各种 html 表单创建一个 altas.php 文件。此代码是一个 html 表单,其中包含一些 mysql 列:

<div><label for="categoria">Categoría principal</label><select type="text" name="categoria">
        <?php 
            $query = "select id, categoria from categorias";
            $result = mysqli_query($mysql,$query);
            if(!$result) echo 'Muy mal....';
            $num_filas = mysqli_num_rows($result);
            for ($i = 0; $i < $num_filas; $i++){
                $row = mysqli_fetch_array($result);
        ?>
        <option value "<?php echo $row['id']?>"><?php echo $row['categoria']?></option><?php
            }   
        ?>
        </select></div>

另一方面,如果我这样做:

foreach($_POST as $campo => $valor){
        echo $campo ." = ". $valor ."\n";
    }

我在 $row['categoria'] 中没有数据。它应该 return 值,即类别的 ID。

另一个问题:

如何使用带有插入句的 "foreach"?

例如:

 foreach($_POST as $campo => $valor){
$query ="INSERT INTO $tabla ($campo) VALUES ('$valor')";
}

$tabla 通过 $_GET 发送。此代码为每个 $campo 创建一个新行。有什么想法吗?

我尝试了一些建议,但没有任何效果。

您似乎在这一行中缺少 = 和结束分号:

<option value "<?php echo $row['id']?>"><?php echo $row['categoria']?></option><?php

应该是:

<option value="<?php echo $row['id']; ?>"><?php echo $row['categoria']; ?></option><?php

编辑: 还从 select 列表

中删除了类型