如何从数据库表中查询多个字段并输入到选择框?

时间:2013-10-20 23:03:47

标签: php mysql database select while-loop

所以,我遇到一些问题,从表中调用两个字段并将它们作为一个条目输入到选择框中,该条目将继续在while语句中添加每个条目。简单来说,我有一个名为firstname的字段和一个名为professors的表中的下一个lastname。我需要将这些字段组合在一起并将每个字段输入到选择框中。下面是我的代码,当我启动while语句时,我在底部的Dreamweaver中收到错误,所以我知道我的工作不起作用,但我无法弄清楚原因。我无法上传带有语法突出显示的图片,因为我刚刚创建了自己的帐户并且没有足够的声誉。我在这个问题中只关注的代码部分是我开始表的起始部分,而在底部我声明了教授的选择框和循环以获取名字的第一个和最后一个名称在桌子上。我一直在阅读许多类似问题的支持解决方案,但没有成功。如果有人有任何提示或建议,我会很高兴。

$fprofessor = $_GET['p_firstname'];
$lprofessor = $_GET['p_lastname'];
$selected_professor=$fprofessor." ".$lprofessor;

$qp = "SELECT p_id, p_firstname, p_lastname FROM professors WHERE p_firstname='$fprofessor' AND p_lastname='$lprofessor'";
$rp = @mysqli_query($dbc, $qp);

// Table header:
echo '<table align="center" cellspacing="0" cellpadding="5" width="auto">
<tr  bgcolor="' . $bg . '">
<td align="left">Section ID</td>
<td align="left">Course Major</td>
<td align="left">Course ID</td>
<td align="left">Course Name</td>
</tr>
<tr bgcolor="' . $bg . '">
    <form action="add_courses.php" method="post">
    <td align="left"><input type="text" name="section_id" size="7" maxlength="7"/></td>
    <td align="left"><select name="course_major">
    <option value="TBA">-Select Major-</option>
    <option value="CIT">CIT</option>
    <option value="CSE">CSE</option>
    <option value="CIT/CSE">CIT/CSE</option></td>
    <td align="left"><input type="text" name="course_id" size="3" maxlength="3"/></td>
    <td align="left"><input type="text" name="course_name" size="15" maxlength="25"/></td>
 </tr>

<tr  bgcolor="' . $bg . '">
<td align="left">Professor</td>
<td align="left">Available</td>
<td align="left">Semester</td>
<td align="left">Year</td>

</tr>

<tr bgcolor="' . $bg . '">

<td align="left"><select name="course_professor">
<option value="TBA">-Select Professor-</option>'
while ($row = mysqli_fetch_array ($rp, MYSQLI_NUM)) {
 echo'<option value="'.$row[. $selected_professor .].'">'.$row[. $selected_professor .].'</option>'
};          
echo'</td>

所以,我已经根据我得到的建议将代码修改为更合适的东西。下面是我现在的内容,但我仍然在$ qp变量和此代码中的while语句中收到错误

<td align="left"><select name="course_professor">'

$qp = "SELECT p_id, p_firstname, p_lastname, CONCAT(p_firstname, p_lastname) AS p_fullname FROM professors";
$rp = @mysqli_query($dbc, $qp);

echo '<option value="TBA">-Select Professor-</option>'
while ($row = mysqli_fetch_array ($rp)) {   
echo '<option value="'.$row['p_fullname'].'">'.$row['p_fullname'].'</option>'
};


echo'</td>

2 个答案:

答案 0 :(得分:0)

我想你可能想做类似的事情:

$qp = "SELECT p_id, p_firstname, p_lastname, CONCAT(p_firstname, p_lastname) AS p_fullname FROM professors WHERE p_firstname='$fprofessor' AND p_lastname='$lprofessor'";

然后引用底部查询中的连接字段。

如果您需要mysql concat引用,可以阅读:http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_concat

答案 1 :(得分:0)

上帝,我感到愚蠢。我解决了我遇到的问题,我忘了一些“;”结束echo的标签-_-下面是有效的代码,但我要感谢James帮我修改我的查询代码。

<td align="left"><select name="course_professor">';

$qp = "SELECT p_id, p_firstname, p_lastname, CONCAT(p_firstname, p_lastname) AS             p_fullname FROM professors";
$rp = @mysqli_query($dbc, $qp);

echo '<option value="TBA">-Select Professor-</option>';
while ($row = mysqli_fetch_array ($rp)) {   
echo '<option value="'.$row['p_fullname'].'">'.$row['p_fullname'].'</option>';
}
echo'</td>