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
,否则您的代码将有效
我制作了一个表单,用户可以在其中 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
,否则您的代码将有效