PHP <选择>未填充结果

时间:2019-01-19 23:22:55

标签: php mysql

我正在尝试编写一个从mysql dba取回的php,并使用下拉列表中的结果集作为另一个php对该变量进行查询的输入。理想情况下,我只想在使用MembersId作为php形式的参数时显示姓,名和呼叫符号。 我得到一个要显示的下拉列表,但没有数据。当我查看源代码时,我看到查询已运行并且可以看到结果集。 我感谢我能得到的任何建议。 <?php include('connectDb.php'); $ sql =“ Select MembersId,lastName,firstName,callSign来自 SVARC.members“; $ stmt = $ pdo-> prepare($ sql); $ stmt-> execute(); $ users = $ stmt-> fetchAll(); ?>
<选择名称=“用户”>     <?php         foreach($ users as $ user){             echo(“ <选项值='”);             echo($ user ['MembersId'] +“'>”);             echo($ user ['lastName']);             回声”,”;             echo($ user ['firstName']);             回声“”;             echo($ user ['callSign']);             echo(“'”);         }     ?>    

1 个答案:

答案 0 :(得分:2)

在这一行:

echo($user['MembersId']+"'>");

您正在尝试使用+进行串联。 PHP中的串联运算符为.

但是,我建议像这样重写您的代码块:

<select name="user">
    <?php foreach ($users as $user): ?> 
    <option value="<?= $user['MembersId'] ?>">
        <?= $user['lastName'] ?>, <?= $user['firstName'] ?> <?= $user['callSign'] ?>
    </option>
    <?php endforeach ?>
</select>

这利用了PHP的alternative syntax for control structures,它对于输出HTML之类的东西特别有用。

我还建议在htmlspecialchars的值上使用avoid potential XSS attacks。并没有将它们添加到样本中以保持简单,但是您至少应该研究一下。