PHP if / else没有按预期工作

时间:2013-12-01 02:11:37

标签: php mysql select if-statement

下面是我用来检查字段是否显示“CIT”以显示html选择框中所选项目的一些代码。如果在数据库中选择了一个或另一个,则该字段显示“CSE”,分别在下拉列表中显示“CSE”和下拉列表中的CIT / CSE。无论数据库字段中的内容如何,​​代码似乎总是使用第一个if语句。所以“CSE”作为course_major的课程显示“CIT”是下拉列表中的第一个选项,但不应该这样。

while ($row = mysqli_fetch_array ($r, MYSQLI_ASSOC)) {
$bg = ($bg=='#B39C56' ? '#000000' : '#0A0A0A');
    echo '<tr>
    <form action="edit_course.php" method="post">
    <!--Next Course
First Line of Table
--><td>Major:</td>

<td style="text-align:left">';
if ($row['course_major'] = "CIT") {
echo'   <select name="course_major" class="rounded">
    <option value="'.$row['course_major'].'">'.$row['course_major'].'</option>
    <option value="CSE">CSE</option>
    </select>';

}  elseif ($row['course_major'] = "CSE")  {
echo'   <select name="course_major" class="rounded">
    <option value="'.$row['course_major'].'">'.$row['course_major'].'</option>
    <option value="CIT">CIT</option>
    </select>';
};

echo'</td>
........................    

2 个答案:

答案 0 :(得分:2)

通常的错误;你在if和elseif子句中有一个赋值而不是一个相等的测试。将两个= -s更改为==。

答案 1 :(得分:2)

您要分配而不是比较。

if ( $x = 3 ) ...

将值3赋给$ x,然后测试该表达式的结果3,以查看该值是否为true。这与说

相同
$x = 3;
if ( $x ) ...

你的意思是使用相等测试:

if ( $x == 3 ) ...