没有用PHP创建表单的经验。
我可以让我的表单产生一个下拉列表,其中列出了我的行之一作为选项,但是一旦我尝试将2行(来自同一张表)连接在一起以输出选项,就可以了...
a)它不起作用,并且出现错误
b)我将第一行作为一个选项,然后将我的下一行作为一个单独的选项。
我知道有一个简单的解决方案,但是我是一名正在学习的在线学生,我似乎找不到找到编写该代码的好例子。我很确定这是报价放置不正确的问题。
MySQLTable数据:
表名:课程表行: course_id,course_name,max_enrolment示例数据: LO-COMP-8001,HTML简介,20
function select_course(){
global $open;
$select = "SELECT * FROM courses";
$result = mysqli_query($open, $select);
return $result;
}
<form action="insert.php" method="post">
<dl>
<dt>Select Course</dt>
<dd><select name="course_id">
<?php // CREATE dropdown menu
$result = select_course();
while ($row = mysqli_fetch_assoc($result)) {
foreach ($row as $selection) {
echo "<option value=\"$selection\">$selection</option>";
}}
?>
</select>
</dd>
</dl>
然后还有更多表单字段,例如学生姓名和学生ID ...
目标输出:
当前输出:
我尝试过:
// output is the one mentioned above..
echo "<option value=\"$selection\">$selection</option>";
// or alternatively...
echo '<option value="'.$row['course_id'].'">'.$row['course_id'].'</option>';
但是第二个选项会产生各种奇怪的结果。
这是我现在正在尝试的内容...
echo '<option value="'.$row['course_id'] $row['course_name']'">'.$row['course_id'] $row['course_name'].'</option>';
但是在引号和方括号中存在很多问题,我只是不知道如何正确格式化输出格式。
感谢您的协助。
$ row将整个行作为关联数组保存,因此不需要'foreach'循环。
function select_course(){
global $open;
$select = "SELECT * FROM courses";
$result = mysqli_query($open, $select);
return $result;
}
<form action="insert.php" method="post">
<dl>
<dt>Select Course</dt>
<dd><select name="course_id">
<?php // CREATE dropdown menu
$result = select_course();
while ($row = mysqli_fetch_assoc($result)) {?>
<option value="<?php echo $row["course_id"]; ?>"><?php echo $row["course_name"]; ?></option>
<?php }
?>
</select>
</dd>
</dl>
</form>
我也能够提出另一种解决方案:
一旦删除了foreach循环,我就尝试清理一些代码...我不确定这是不常见还是'坏'的样式,但是它确实起作用。
$result = select_course();
while ($row = mysqli_fetch_assoc($result)) {
$course_id = $row['course_id'];
$course_name = $row['course_name'];
echo "<option value=\"$course_id\">$course_id $course_name</option>";
结果:LO-COMP-8001 HTML简介作为一个选项,另外还有数据库中的所有其他课程。