使用单个查询填充多个下拉列表

时间:2013-12-09 19:50:25

标签: php sql sql-server

我有四个下拉列表,我想用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 [],依此类推)。我真的不想四次写同一个查询。有办法吗?

2 个答案:

答案 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>";
}
?>
相关问题