2016-11-21 10 views
0

入力した入力に基づいて見積もりを作成するフォームがあります。これらの入力の1つは、プロジェクトの終了を決定するチェックボックスのグループです。それらは配列(name="finishes_id[]")としてデータベースに格納されます。彼らは、次のようになります。finishes_usedと呼ばれるテーブルに置かれています。見積もりテーブルと一緒にmysqlテーブルからチェックボックスの配列を事前に選択

used_id | estimate_id | finish_id 

このテーブルリンク終了テーブル。 3つの異なる仕上げは1つの見積もりの​​ために選択した場合例えばので、それは次のようになります。

used_id | line_id | estimate_id | finish_id 
1    1    1000    2     
2    1    1000    6     
3    1    1000    7     

が、私は今、見積もりの​​編集ページを作っていますし、私は事前に選択する方法を考え出すトラブルを抱えています使用されたチェックボックスを終了します。選択されたチェックボックスのみを表示しています。他の人もチェックするオプションが必要です。

enter image description here

私のフォームのチェックボックスの一部のための私のコードは次のようになります。上記の結果を得るにはどうすればよいですか?

<?php 
    $getid  = $_GET['estimate_id']; // The current estimate number 
    $getLineid = $_GET['line_id'];  // The current line item on the estimate 
?> 

<label for="finish_id">Finishing</label> 
<div class="checkbox_group"> 
    <?php 
     if ($select = $db -> prepare("SELECT f.finish_id, f.finish_name, u.estimate_id, u.line_id FROM finishes AS f INNER JOIN finishes_used AS u ON u.finish_id = f.finish_id WHERE u.line_id = ? ORDER BY f.finish_name ASC")) 
     { 
      $select -> bind_param('s', $getLineID); 
      $select -> execute(); 
      $select -> bind_result($finish_id, $finish_name, $used_estimate_id, $used_line_id); 
      while ($select -> fetch()) 
      { 
       echo '<div class="checkbox">'; 
       echo '<input type="checkbox" name="finish_id[]" id="edit_'.$finish_name.'" value="'.$finish_id.'" '; 
       echo '/><label for="edit_'.$finish_name.'">'.$finish_name.'</label>'; 
       echo '</div>'; 
      } 
      $select -> close(); 
     } 
    ?> 
</div> 

答えて

0

あなたがこれを達成するためにleft outer joinの代わりinner joinを使用する必要が私には思えます。

ここでは、ジョインに関する大きな説明があります。What is the difference between "INNER JOIN" and "OUTER JOIN"?

+0

返信ありがとうございます。内部結合を左外結合と置き換え、前と同じ結果を得ました。文のvar_dumpは '[" num_rows "] => int(3)'を返します。 これは私の新しいクエリです: 'SELECT f.finish_id、f.finish_name、u.estimate_id、u.line_id終了AS f LEFT OUTER JOIN finishes_used AS u ON u.finish_id = f.finish_id WHERE u.line_id =? ORDER BY f.finish_name ASC' –

+0

明日は何が起こっているのかを見るために再作成します。 –

+0

ありがとうございました。私は助けてくれてありがとうございます。 –

関連する問題