PHP表单选择正确填充MySQL值,而不是使用简单的PHP echo

PHP表单选择正确填充MySQL值,而不是使用简单的PHP echo,php,mysql,Php,Mysql,我有一个PHP select,它基于MySQL记录集动态填充,并使用in_数组值来标识和选择在数据库中找到的值,如下所示: <select name="StaffSetSelection[]" size="5" multiple="MULTIPLE" id="StaffSetSelection"> <option <?php if ($totalRows_StaffSetID == 0) { echo "selected"; } ?> value="">

我有一个PHP select,它基于MySQL记录集动态填充,并使用in_数组值来标识和选择在数据库中找到的值,如下所示:

<select name="StaffSetSelection[]" size="5" multiple="MULTIPLE" id="StaffSetSelection">
    <option <?php if ($totalRows_StaffSetID == 0) { echo "selected"; } ?> value="">Choose a Staff Set</option>
    <?php
    do {
        ?>
        <option <?php if (in_array($row_StaffSetChoices['EmpNumber'], $StaffSetIDs)) {
            echo "selected";
        } ?> value="<?php echo $row_StaffSetChoices['EmpNumber'] ?>"><?php echo $row_StaffSetChoices['EmpFirstName'] ?></option><?php
    } while ($row_StaffSetChoices = mysql_fetch_assoc($StaffSetChoices));
    $rows = mysql_num_rows($StaffSetChoices);
    if ($rows > 0) {
        mysql_data_seek($StaffSetChoices, 0);
        $row_StaffSetChoices = mysql_fetch_assoc($StaffSetChoices);
    }
    ?>
</select>

我不想在表单选项select中显示所选的值,我只想将它们显示为文本

我尝试在一个简单的php回送中再次使用in_数组,但它不显示数据,并且我的apache日志中没有错误

这就是我尝试过的:

<?php if(in_array($row_StaffSetChoices['EmpNumber'], $StaffSetIDs)) echo $row_StaffSetChoices['EmpFirstName']?>

我想你忘了括号, 试着这样做:

<?php 
     if(in_array($row_StaffSetChoices['EmpNumber'], $StaffSetIDs)) {
         echo $row_StaffSetChoices['EmpFirstName'];
     } 
?>


您的代码毫无意义。“若查询返回非零行,则将fetch倒带到结果集的开头”。对于返回任何行的任何查询来说,这将是一个无限循环……它非常有效,并且在没有事先选择的情况下使用。虽然这不是问题的一部分,但是如果您想要@MarcBfalse,可以将其作为一个因素删除。括号仅适用于多行“内部”代码
if(foo)do_something()
完全可以接受<代码>如果(foo)做某事();还有别的事吗有时只运行do_某事,每次运行do_某事;在回声之后。