我有四个下拉列表,我想用MSSQL表中的值填充。所有四个列表都应包含相同的值。查询如下所示:
$data = $con->prepare("SELECT ID, Code FROM Table WHERE Code = :value ORDER BY Code");
$input = array('value'=>'value'); //'value' is hardcoded, not a variable
$data->execute($input);
这是我的下拉代码:
<?php
echo "<select name=\"proj1[]\">";
while($row = $data->fetch(PDO::FETCH_BOTH))
{
echo "<option value='".$row['Code']."'>".$row['Code']."</option> ";
}
echo "</select>";
?>
这适用于一个下拉列表。如果我尝试创建另一个(proj2 [],proj3 [],proj4 [])并应用相同的查询,则PHP页面在该点停止加载,第二个下拉列表不会填充。我发现它的唯一方法是复制查询并更改变量($ data变为$ data2 for proj2 [],依此类推)。我真的不想四次写同一个查询。有办法吗?
答案 0 :(得分:2)
$select = '';
while($row = $data->fetch(PDO::FETCH_BOTH))
{
$select .= "<option value='".$row['Code']."'>".$row['Code']."</option> ";
}
echo "<select name=\"proj1[]\">";
echo $select;
echo "</select>";
echo "<select name=\"proj2[]\">";
echo $select;
echo "</select>";
//etc...
答案 1 :(得分:0)
为什么不将它全部放入变量中然后再使用4次? 像这样:
<?php
while($row = $data->fetch(PDO::FETCH_BOTH))
{
$options .= "<option value='".$row['Code']."'>".$row['Code']."</option> ";
}
for($i = 0; $i <= 4; $i++){
echo "<select name=\"proj1[]\">";
echo $options;
echo "</select>";
}
?>