我使用这个脚本已经走了很长一段路,但我现在遇到了一个新问题。数据已正确发布,但当我尝试查看编辑时,下拉菜单现在显示--None--即使第一个名称“Any Kahl”显示在数据库中。
下面的代码就是我正在使用的代码,我似乎无法理解为什么它没有以正确的方式提取数据。任何帮助将不胜感激。
if ($row['fab1']=="--None--")
{
echo'<div id="fab1">';
$mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
$mysqli->select_db('user');
$result = $mysqli->query("SELECT * FROM user");
echo "<SELECT name='fab1'>\n";
while($row = $result->fetch_assoc())
{
echo "<option value='{$row['user']}'>{$row['user']}</option>\n";
}
echo "</select>\n";
echo '</div>';
}
else
{
echo'<div id="fab1">';
$mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
$mysqli->select_db('user');
$result = $mysqli->query("SELECT * FROM user");
echo "<SELECT name='fab1'>\n";
while($row = $result->fetch_assoc())
{
echo "<option value='{$row['user']}'>{$row['user']}</option>\n";
}
echo "</select>\n";
echo '</div>';
}
答案 0 :(得分:1)
如果你没有用大括号包装你的代码块,那么if语句将只适用于紧随其后的第一行(在你的情况下:echo'<div id="fab1">'
),无论你是否执行,之后的任何内容都将执行陈述评估为真。
你应该用花括号包装你的if语句:
echo '<div id="box4">';
echo '<h2>Fabricators</h2>';
if ($row['fab1']="--None--")
{
echo'<div id="fab1">';
$mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
$mysqli->select_db('user');
$result = $mysqli->query("SELECT * FROM user");
echo "<SELECT name='fab1'>\n";
while($row = $result->fetch_assoc())
{
echo "<option value='{$row['user']}'>{$row['user']}</option>\n";
}
echo "</select>\n";
echo '</div>';
}
else
{
echo '<div id="fab1"><span class="b"></span><input type="text" name="fab1" size="20" value="' . $row['fab1'] . '" /></div>';
echo '</div>';
}
答案 1 :(得分:1)
您需要对if和else之间的语句进行封装。
这可以通过几种不同的方式完成。
if (condition) :
//statements if true
else :
//all other statements
endif;
或
if(condition){
//statements if true
}
else {
//all other statements
}
你编写它的方式只读取if作为if语句的一部分之后的第一行。这就是else语句出乎意料的原因。