PHP使用php选择表单从数据库中提取所有条目并显示所选条目

时间:2013-11-20 23:21:48

标签: php mysql sql

大家好,我打算做的是列出我桌面上的所有用户,将它们显示在列表中,然后在下拉列表中突出显示表格中的当前条目。

这是我目前的代码:

print "<option value=".$row2['user_id']." if($row2['user_id']==$row['user_id']){ echo 'selected=\"selected\"';}>".$row2['fname']." ".$row2['lname']."</option>";

但它不起作用。

目前我正在运行的代码是这样的:

<?
//$results4 = mysql_query("select * from user_info order by fname");

$data2 = "select * from user_info order by fname";

$result2 = mysql_query($data2);
print "<select name=\"timesheet_approver_1\">";
print "<option value=".$row['user_id']." selected='selected'>".$row['fname']." ".$row['lname']."</option>";
while ($row2 = mysql_fetch_assoc($result2)) {
print "<option value=".$row2['user_id'].">".$row2['fname']." ".$row2['lname']."</option>";
}
print "</select>";
?>

这会列出我的所有条目,但会在顶部列出的表格中添加一个条目。我只是坚持如何只列出所有条目并突出显示表中的那个。

由于

大卫

3 个答案:

答案 0 :(得分:1)

您无法在if语句中嵌入print语句。

但是,您可以使用ternary operator

在没有if的情况下进行比较

print "<option value='".$row2['user_id']."' " . ($row2['user_id']==$row['user_id'] ? 'selected="selected"' : '' ) . '>' . $row2['fname']." ".$row2['lname']. "</option>";

如此工作:

echo ( $a == $b ? 'a==b evaluates true' : 'a==b evaluates false' );

来自手册

"The expression (expr1) ? (expr2) : (expr3) evaluates to expr2 if expr1 evaluates to TRUE, and expr3 if expr1 evaluates to FALSE."

答案 1 :(得分:1)

您的问题是您始终选择第一项。

//| this line here is outside your loop which means that even 
//| if there a true to your expression it will left two options with selected attribute and
//| the first one will be selected.
print "<option value=".$row['user_id']." selected='selected'>".$row['fname']."      ".$row['lname']."</option>";


while ($row2 = mysql_fetch_assoc($result2)) {
    print "<option value=".$row2['user_id'].">".$row2['fname']." ".$row2['lname']."</option>";
}

答案 2 :(得分:0)

感谢您的投入并帮助我解决这个问题,我非常感谢。

对于阅读此条目的任何人来说,这已经解决了,但希望我使用的代码可以帮助某人,我已经在下面发布了我的工作代码。

这简化了我的代码并完美地完成了工作,希望这可以帮助其他有类似问题的人,谢谢:)

<?

//$results4 = mysql_query("select * from user_info order by fname");
$data2a = "select * from user_info order by fname";

$result2a = mysql_query($data2a);

print "<select name=\"timesheet_approver_2\">";

//print "<option value=".$row['timesheet_approver_2']." selected='selected'>".$row['timesheet_approver_2']." ".$row['timesheet_approver_2']."</option>";

while ($row2a = mysql_fetch_assoc($result2a)) {

//print "<option value=".$row2a['user_id'].">".$row2a['fname']." ".$row2a['lname']." (".$row2a['user_id'].")</option>";

print "<option value='".$row2a['user_id']."' " . ($row2a['user_id']==$row['timesheet_approver_2'] ? 'selected="selected"' : '' ) . '>' . $row2a['fname']." ".$row2a['lname']. "</option>";
}
print "</select>";


?>