2017-03-27 17 views
1

これまでの私のプロジェクトでは、私のSQLテーブルからデータを取得しています。私は4つのセクションを持っていて、すべて同じテーブルから同じ情報を取得します。PHPの値が2回繰り返す

最初のセクションは素晴らしいです。データはそこにあります。

次の3つのセクションは機能しますが、なぜデータを修正できるのかわからないデータが繰り返されます。以下は私のSQLテーブルと私のPHPコードです。

+--------+ 
| Color | 
+--------+ 
| Red | 
| Blue | 
| Orange | 
| Black | 
+--------+ 


+-----------+--------------+-----------+ 
| GroupName | MemberName | ValueName | 
+-----------+--------------+-----------+ 
| Red  | Joe Bob  | Joe  | 
| Red  | Catherine | Kat  | 
| Blue  | Tommy  | Tom  | 
| Orange | John Razks | John  | 
| Black  | Trevor Smith | Trevor | 
+-----------+--------------+-----------+ 

コード:

<form id=#blah> 
    <select id="committee" name="committee" onchange="javascript: dynamicdropdown(this.options[this.selectedIndex].value);"> 
    <option value="">Select Color</option> 
    <?php 
    $conn = mysqli_connect("#connection"); 

    if(!$conn){ 
     die("Connection Failed".myslqi_connect_error()); 
    } 
    $result = mysqli_query($conn, "SELECT * from Color order by Color ASC"); 
    while ($row = mysqli_fetch_assoc($result)){ 
     unset($committee, $Committee); 
     // $committee = $row['Committee']; 
     $Committee = $row['Color']; 
     echo '<option value=" .$Committee. ">'.$Committee.'</option>'; 
    } 
    ?> 
    </select> 
    </div> 

    <div class="sub_category_div" id="sub_category_div"> 
     Individual: 
     <select name="senator" id="senator"> 
     <option value="">Select Individual</option> 
     <?php 
     $conn = mysqli_connect("#connection"); 

    if(!$conn){ 
     die("Connection Failed".myslqi_connect_error()); 
    } 
    $result = mysqli_query($conn, "SELECT distinct MemberName,GroupName,ValueName from Members order by MemberName ASC"); 
    while ($row = mysqli_fetch_assoc($result)){ 
     $array[$row['GroupName']][] = $row; 
    } 
    foreach($array as $class => $value){ 
     if(is_array($value)){ 
      echo "<optgroup class=".$class.">"; 
      foreach($value as $k=>$v){ 
       echo "<option value=".$v['ValueName'].">".$v['MemberName']."</option>"; 
      } 
      echo "</optgroup>"; 
     } 
    } 
    ?> 
    </select> 
    </form> 
    <form id=#id> 
     <select id="committee" name="committee" onchange="javascript: dynamicdropdown(this.options[this.selectedIndex].value);"> 
     <option value="">Select Color</option> 
     <?php 
     $conn = mysqli_connect("#connection"); 

    if(!$conn){ 
     die("Connection Failed".myslqi_connect_error()); 
    } 
    $result = mysqli_query($conn, "SELECT * from Color order by Color ASC"); 
    while ($row = mysqli_fetch_assoc($result)){ 
     unset($committee, $Committee); 
     // $committee = $row['Committee']; 
     $Committee = $row['Color']; 
     echo '<option value=" .$Committee. ">'.$Committee.'</option>'; 
    } 
    ?> 
    </select> 
    </div> 

    <div class="sub_category_div" id="sub_category_div"> 
     Individual: 
     <select name="senator" id="senator"> 
     <option value="">Select Individual</option> 
     <?php 
     $conn = mysqli_connect("#connection"); 

    if(!$conn){ 
     die("Connection Failed".myslqi_connect_error()); 
    } 
    $result = mysqli_query($conn, "SELECT distinct MemberName,GroupName,ValueName from Members order by MemberName ASC"); 
    while ($row = mysqli_fetch_assoc($result)){ 
     $array[$row['GroupName']][] = $row; 
    } 
    foreach($array as $class => $value){ 
     if(is_array($value)){ 
      echo "<optgroup class=".$class.">"; 
      foreach($value as $k=>$v){ 
       echo "<option value=".$v['ValueName'].">".$v['MemberName']."</option>"; 
      } 
      echo "</optgroup>"; 
     } 
    } 
    ?> 
    </select> 
</form> 

答えて

0

私は100%わからないんだけど、私は重複が、それは可能性があり、同じクエリをもう一度思い出したときに、あなたのループ内で同じ変数名を使用するか、から来ていると思いますまた、ループで何か起こっているかもしれません。 私はあなたがこの問題を回避し、一度だけして、データを呼び出して、あなたがそれを使用する必要があるたびに、各クエリを実行することによって、コードビットすっきりを作ることができると思う:

<?php 
    $conn = mysqli_connect("localhost","user","pass","db_name"); 
    if(!$conn){ die("Connection Failed".myslqi_connect_error()); } 
    else{ 
    $color_result = mysqli_query($conn, "SELECT * from Color order by Color ASC"); 
    $colors = array(); 
    while ($row = mysqli_fetch_assoc($color_result)){ $colors[] = $row['Color']; } 
    $member_result = mysqli_query($conn, "SELECT distinct MemberName,GroupName,ValueName from Members order by MemberName ASC"); 
    $members = array(); 
    while ($row = mysqli_fetch_assoc($member_result)){ 
     if(!isset($members[$row['GroupName']])){ $members[$row['GroupName']] = array(); } 
     $members[$row['GroupName']][] = $row; } 
    } 
?> 
<form id=#blah> 
<select id="committee" name="committee" onchange="javascript: dynamicdropdown(this.options[this.selectedIndex].value);"> 
    <option value="">Select Color</option> 
     <?php 
      foreach($colors as $color){ 
       echo "<option value=\"".$color."\">".$color."</option>"; 
      } 
     ?> 
      </select> 
     </div> 

    <div class="sub_category_div" id="sub_category_div"> 
    Individual: 
    <select name="senator" id="senator"> 
     <option value="">Select Individual</option> 
     <?php 
     foreach($members as $key => $member_group){ 
       echo "<optgroup class=\"".$key."\">"; 
       foreach($member_group as $val){ 
        echo "<option value=\"".$val['ValueName']."\">".$val['MemberName']."</option>"; 
       } 
       echo "</optgroup>"; 
     } 
     ?> 
    </select> 
    </form> 
    <form id=#id> 
    <select id="committee" name="committee" onchange="javascript: dynamicdropdown(this.options[this.selectedIndex].value);"> 
<option value="">Select Color</option> 
     <?php 
      foreach($colors as $color){ 
       echo "<option value=\"".$color."\">".$color."</option>"; 
      } 
     ?> 
      </select> 
     </div> 

    <div class="sub_category_div" id="sub_category_div"> 
    Individual: 
    <select name="senator" id="senator"> 
     <option value="">Select Individual</option> 
     <?php 
     foreach($members as $key => $member_group){ 
       echo "<optgroup class=".$key.">"; 
       foreach($member_group as $val){ 
        echo "<option value=\"".$val['ValueName']."\">".$val['MemberName']."</option>"; 
       } 
       echo "</optgroup>"; 
     } 
     ?> 
    </select> 
    </form> 

これが唯一の中に所望の出力を取得してみましょう必要があります各クエリを一度実行する必要があり、重複を排除する必要があります。私はこれが助けてくれることを願っています

+0

"array"、 "array"、 "array"、 "array"と同様に色が戻ってきます – catung555555

+0

@ catung555555 - 私は列の代わりに行の値を保存しました。クエリを実行した後の上部の色の列の値 – M31

+0

ありがとう、非常に感謝します。 – catung555555

関連する問題