我有20个下拉框查询单个表和相同的字段,我编写了以下查询,效果很好。我确信有一种方法可以优化这个重复的下拉框,我不知道。
我应该写一个函数和每个<select><? functioname() ?></select>
的传递参数
<div class="form-group">
<label>Split 1</label>
<select class="form-control required" name='distance[]' id='distance' >
<option value="-1">Select Distance</option>
<?php
$plan_sql="select * from mytable";
$plan_res=mysqli_query($con,$plan_sql);
while($row=mysqli_fetch_array($plan_res,MYSQL_BOTH))
{
?>
<option value="<?php echo $row['id'];?>"><?php echo $row['name'];?></option>
<?php
}
?>
</select>
</div>
<div class="form-group">
<label>Split 2</label>
<select class="form-control required" name='distance[]' id='distance' >
<option value="-1">Select Distance</option>
<?php
$plan_sql="select * from mytablename";
$plan_res=mysqli_query($con,$plan_sql);
while($row=mysqli_fetch_array($plan_res,MYSQL_BOTH))
{
?>
<option value="<?php echo $row['id'];?>"><?php echo $row['name'];?></option>
<?php
}
?>
</select>
</div>
答案 0 :(得分:3)
<?php
// Run your query once and store the results
$plan_sql = "select id, name from mytable";
$plan_res = mysqli_query($con, $plan_sql);
while ($row = mysqli_fetch_array($plan_res, MYSQLI_ASSOC)) {
$result[] = $row;
};
// then you can add your selects without running the query repeatedly
for ($i=1; $i <= 20; $i++):?>
<div class="form-group">
<label>Split <?php echo $i; ?></label>
<select class="form-control required" name='distance[]' id='distance' >
<option value="-1">Select Distance</option>
<?php foreach ($result as $row): ?>
<option value="<?php echo $row['id'];?>"><?php echo $row['name'];?></option>
<?php endforeach ?>
</select>
</div>
<?php endfor; ?>