重复下拉框 - 总共20个 - Mysql - PHP

时间:2016-06-17 18:48:56

标签: php mysql

我有20个下拉框查询单个表和相同的字段,我编写了以下查询,效果很好。我确信有一种方法可以优化这个重复的下拉框,我不知道。

我应该写一个函数和每个<select><? functioname() ?></select>的传递参数 enter image description here

<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>

enter image description here

1 个答案:

答案 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; ?>