任何人都可以解释一个详细的答案,因为我无法在stackoverflow上找到它
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
ini_set('log_errors',1);
mysqli_report(MYSQLI_REPORT_ALL);
$link = mysqli_connect('localhost', 'root', '', 'test') or
die(mysqli_connect_error());
$query2 = "Select * from qualifications";
$result=mysqli_query($link,$query2)or die (mysqli_error($link));
?>
<form>
<table>
<tr>
<td>
<select name="short_term_degree" id="short_term_degree" >
<option value="">Select</option>
<?php
while ( $d=mysqli_fetch_assoc($result)) {
echo "<option
value='".$d['qual_id']."'>".$d['qualification']."</option>";
}
?>
</select>
</td>
</tr>
<tr>
<td>
<select name="short_term_course" id="short_term_course" >
<option value="">Select</option>
<?php
while ( $d=mysqli_fetch_assoc($result)) {
echo "<option
value='".$d['qual_id']."'>".$d['qualification']."</option>";
}
?>
</select>
</td>
</tr>
</table>
</form>
</body>
我得到的结果
<select name="short_term_degree" id="short_term_course">
<option value="">Select</option>
<option value="268">Graduate</option>
<option value="269">Mtech</option>
<option value="353">Bachelor of Econimics</option>
</select>
<select name="short_term_course" id="short_term_course">
<option value="">Select</option>
</select>
第二个选择框不显示任何数据是什么原因。
为什么我需要在OR mysqli_data_seek($ result,0)之前再次使用mysqli_query(); 在选择框中获得结果
答案 0 :(得分:2)
不要像这样写两次相同的代码
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
ini_set('log_errors',1);
mysqli_report(MYSQLI_REPORT_ALL);
$link = mysqli_connect('localhost', 'root', '', 'test') or
die(mysqli_connect_error());
$query2 = "Select * from qualifications";
$result=mysqli_query($link,$query2)or die (mysqli_error($link));
$options = "";
while ( $d=mysqli_fetch_assoc($result)) {
$options .= "<option
value='".$d['qual_id']."'>".$d['qualification']."</option>";
}
?>
<form>
<table>
<tr>
<td>
<select name="short_term_degree" id="short_term_degree" >
<option value="">Select</option>
<?php
echo $options;
?>
</select>
</td>
</tr>
<tr>
<td>
<select name="short_term_course" id="short_term_course" >
<option value="">Select</option>
<?php
echo $options;
?>
</select>
</td>
</tr>
</table>
</form>
</body>
答案 1 :(得分:1)
返回与获取的行对应的数组,并向前移动内部数据指针。
当您尝试使用第二个while循环时,内部数据点仍然在结尾。你没有做任何重置它。
您可以使用mysqli_data_seek($result, 0);
<强>更新强>
当第一次循环运行时,内部数据指针向前移动并到达最后一个数据指针。因此,当您尝试使用第二个while循环从中获取数据时。所以没有更多的数据,因为。它已经到达最后一个数据指针。
答案 2 :(得分:-1)
您可以按以下方式使用mysqli_fetch_assoc两次: -