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

Php 如何从数据库表中查询多个字段并输入选择框?,php,mysql,database,select,while-loop,Php,Mysql,Database,Select,While Loop,因此,我在从一个表中调用两个字段并将它们作为一个条目输入一个选择框时遇到了一些问题,该选择框将在while语句中不断添加每个条目。更简单地说,我在一个名为professors的表中有一个名为firstname的字段和下一个名为lastname的字段。我需要将这些字段组合在一起,并将每个字段输入到一个选择框中。下面是我的代码,当我启动while语句时,我在dreamweaver的底部收到错误,因此我知道我的代码不起作用,但我很难找出原因。我无法上传带有语法突出显示的图片,因为我刚刚创建了我的帐户,

因此,我在从一个表中调用两个字段并将它们作为一个条目输入一个选择框时遇到了一些问题,该选择框将在while语句中不断添加每个条目。更简单地说,我在一个名为professors的表中有一个名为firstname的字段和下一个名为lastname的字段。我需要将这些字段组合在一起,并将每个字段输入到一个选择框中。下面是我的代码,当我启动while语句时,我在dreamweaver的底部收到错误,因此我知道我的代码不起作用,但我很难找出原因。我无法上传带有语法突出显示的图片,因为我刚刚创建了我的帐户,没有足够的声誉。在这个问题中,我只关心的代码部分是开始部分,直到我开始表格,在底部,我为professor声明选择框,并循环获取表格中的名字和姓氏。我已经阅读了许多针对类似问题的支持解决方案,但都没有成功。如果有人有任何提示或建议,我将不胜感激

$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>
$fprofessor=$\u GET['p\u firstname'];
$lprofessor=$\u GET['p\u lastname'];
$selected_professor=$fprofessor.“.”$lprofessor;
$qp=“从教授中选择p_id、p_firstname、p_lastname,其中p_firstname='$fprofessor'和p_lastname='$lprofessor';
$rp=@mysqli_查询($dbc,$qp);
//表格标题:
回声'
区段ID
课程专业
课程ID
课程名称
-选择专业-
CIT
CSE
CIT/CSE
教授
可用
学期
年
-选择教授-'
而($row=mysqli\u fetch\u数组($rp,mysqli\u NUM)){
回显'.$row.[.$selected_professor.].'
};          
回声'
因此,根据我得到的建议,我修改了代码,使之看起来更合适。下面是我现在看到的,但是我仍然收到一个关于$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>
'
$qp=“从professors中选择p_id、p_firstname、p_lastname、CONCAT(p_firstname、p_lastname)作为p_全名”;
$rp=@mysqli_查询($dbc,$qp);
echo'-选择教授-'
而($row=mysqli_fetch_数组($rp)){
回显'.$row['p_fullname'].'
};
回声'

我想您可能想做以下事情:

$qp=“从教授中选择p_id、p_firstname、p_lastname、CONCAT(p_firstname、p_lastname)作为p_全名,其中p_firstname='$fprofessor'和p_lastname='$lprofessor'

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


如果您需要mysql concat参考,您可以阅读:

上帝,我觉得自己很愚蠢。我修复了我遇到的问题,我忘记了一些“;”结束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>
”;
$qp=“从professors中选择p_id、p_firstname、p_lastname、CONCAT(p_firstname、p_lastname)作为p_全名”;
$rp=@mysqli_查询($dbc,$qp);
echo'-选择教授-';
而($row=mysqli_fetch_数组($rp)){
回显'.$row['p_fullname'].';
}
回声'

为什么代码末尾有$row[$selected\u profesor]??使用mysqli_num而不是MYSQL_ASSOC获取数组。或者使用$row[0]或$row['column_name]并在获取数组时设置MYSQL_ASSOC。结果中似乎没有“select_professor”字段。您可以在mysql语句中执行contcat,这将提供您想要的内容,或者您可能需要分别引用每个字段以在php中执行concat。