2016-06-17 4 views
1

私は20のドロップダウンボックスを1つのテーブルと同じフィールドに照会しています。私は、この繰り返しのドロップダウンボックスを最適化する方法があると確信しています。ドロップダウンボックスを繰り返します - 合計20 - Mysql - PHP

iは関数を記述しなければならず、各<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

+0

からのパスパラメータは、あなたは、すべてのグループのために別のテーブルを持っていますか? – chris85

+2

同じクエリを繰り返し実行しているようです。クエリを一度実行して結果を保存し、各選択に対して再利用できるようにします。 –

+0

@ chris85同じテーブルなし – user580950

答えて

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; ?>  
+1

私は 'MYSQL_BOTH'を' MYSQLI_ASSOC'に変更します。 – chris85

+0

@ chris85良い点。あまりにも多くのcopypasta。 –

関連する問題