入力した入力に基づいて見積もりを作成するフォームがあります。これらの入力の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
が、私は今、見積もりの編集ページを作っていますし、私は事前に選択する方法を考え出すトラブルを抱えています使用されたチェックボックスを終了します。選択されたチェックボックスのみを表示しています。他の人もチェックするオプションが必要です。
私のフォームのチェックボックスの一部のための私のコードは次のようになります。上記の結果を得るにはどうすればよいですか?
<?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>
返信ありがとうございます。内部結合を左外結合と置き換え、前と同じ結果を得ました。文の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' –
明日は何が起こっているのかを見るために再作成します。 –
ありがとうございました。私は助けてくれてありがとうございます。 –