mysqli_fetch_array不保存完整的下拉数据

时间:2015-08-31 11:56:54

标签: php mysql drop-down-menu

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

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

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>

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

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

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

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

SRG Traumschule, AHS Bergschule, AHS Testschule,

如果用户选择“SRG Traumschule”并提交表单,在我的数据库中为用户我只看到“SRG”而不是“SRG Traumschule”或者如果用户选择“AHS Testschule”我只看到里面的数据库“测试”。 见这里:http://awesomescreenshot.com/0c8572u7c8

有人可以帮助我并告诉我为什么会出现这个问题吗?我做错了什么?

1 个答案:

答案 0 :(得分:1)

这是因为您没有附上option元素value属性

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

需要

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

除非您的值中没有space

,否则您的代码将有效