mysqli_fetch_array 不保存完整的下拉数据

mysqli_fetch_array does not save complete dropdown data

我制作了一个表单,用户可以在其中 select 从下拉字段中选择不同的选项。 selected 选项应该保存在另一个 table 的数据库中。所以这就是我所做的:

从数据库获取下拉列表的数据:

include 'inc/database.php';
// Get all Schulen from Database
$get_schulname3 = "SELECT schulname FROM schule";
$result_get_schulname3 = mysqli_query($connect, $get_schulname3);

在网站上显示下拉字段:

<div class="form-group">
 <label class="control-label col-md-3 col-sm-3 col-xs-12">Schule:</label>
   <div class="col-md-9 col-sm-9 col-xs-12">
     <?php  while ($get_schulname3 = mysqli_fetch_array($result_get_schulname3, MYSQLI_BOTH)) {
        echo "<select name='schule-lehrer' class='form-control'>Dropdown</option>";
        while($r3 = mysqli_fetch_array($result_get_schulname3, MYSQLI_BOTH)){
        echo "<option value=" . $r3['schulname'] . ">" .$r3['schulname'] . "</option>";
      }

     echo "</select>";
   } ?><br /><br />

      </div>
    </div>

使用此代码显示所有内容并且一切正常。现在,如果用户 select 从下拉列表中选择某些内容,并非所有数据都保存在数据库中。

下面是如何在我的数据库中保存数据:

$schule_lehrer = mysqli_real_escape_string ($connect, $_POST['schule-lehrer']);
$query = "INSERT INTO teacher (schule) VALUES ('schule_lehrer')";

例如,我的下拉字段中有以下条目:

SRG 创伤学院, AHS Bergschule, AHS 考试,

例如,如果用户 selects "SRG Traumschule" 并提交了表单,在我的用户数据库中我只看到 "SRG" 而不是 "SRG Traumschule" 或者如果user selects "AHS Testschule" 我只看到里面的数据库"Test"。 看这里:http://awesomescreenshot.com/0c8572u7c8

谁能帮我告诉我为什么会出现这个问题?我做错了什么?

这是因为您没有包含 option 元素 value 属性

echo "<option value=" . $r3['schulname'] . ">" .$r3['schulname'] . "</option>";
                   ^^                       ^^

需要

echo "<option value='" . $r3['schulname'] . "'>" .$r3['schulname'] . "</option>";
                    ^^                       ^^

除非您的值

中没有 space,否则您的代码将有效