0

ドキュメントのテーブルを作成し、タスクに関連してドキュメントが必要かどうかをユーザーが選択できるようにしたいと考えています。ドキュメントの現在のステータスを確認して、それがすでに必要であるかどうか、チェックボックスがチェックされているかどうかを確認する必要があります。現在、データベースには 4 つのドキュメントがあり、この特定のタスクの 2 つのドキュメントへの関連付けは 2 つだけです。

ドキュメントがタスクに関連付けられていない場合、関連付けられていないことを示すエントリはデータベースにありません。単にそのテーブルに含まれていないだけです。

私が現在持っているコードは、関連付けのある2つのドキュメントに対してチェックボックスを表示しますが、関連付けのないドキュメントにはチェックボックスをまったく表示しません。ユーザーがその関連付けを変更できるように、3 つのチェック ボックスを引き続き表示したいのですが、デフォルトではチェックは不要です。現在、チェックボックスはまったく表示されていません。以下は PHP スニップです。スクリーンショットまたは DB ダンプが必要な場合はお知らせください。

どんな助けでも大歓迎です。長い一日だったといいのですが、簡単なことを忘れています。

    <table border=1>
      <tr>
        <td align=center><p>Here you can associate documents to Jobs and Tasks to.</p> </td>
      </tr>
    </table>';



$order2 = "SELECT * FROM documents";
$result2 = mysql_query($order2);
while ($row2 = mysql_fetch_array($result2)) {

$nice_name = $row2['nice_name'];
$doc_id = $row2['id'];

}

echo '
<h3>Documents</h3>

    <table border=1>
      <tr><th>Document Name</th><th>Document Type</th><th>Required</th><th>Optional</th><th>Not Required</th></tr>
    ';



$order2 = "SELECT * FROM documents ORDER BY type_id";
$result2 = mysql_query($order2);
while ($row2 = mysql_fetch_array($result2)) {

$nice_name = $row2['nice_name'];
$doc_id = $row2['id'];
$doc_type_id = $row2['type_id'];

echo '

      <tr>
        <td>'.$nice_name.'</td>';

$order3 = "SELECT * FROM document_types WHERE id = '$doc_type_id'";
$result3 = mysql_query($order3);
while ($row3 = mysql_fetch_array($result3)) {

$type_name = $row3['type_name'];

    echo '
        <td>'.$type_name.'</td>';

$order4 = "SELECT * FROM document_assoc WHERE doc_id = '$doc_id'";
$result4 = mysql_query($order4);
while ($row4 = mysql_fetch_array($result4)) {

$requirement = $row4['requirement'];

    echo '

        <td><input type="checkbox" name="req" value="2" '; if ($requirement == 2) { echo ' checked '; } echo '></td>
        <td><input type="checkbox" name="opt" value="1" '; if ($requirement == 1) { echo ' checked '; } echo '></td>
        <td><input type="checkbox" name="not" value="0" '; if ($requirement < 1) { echo ' checked '; } echo '></td>';
    }

    }

    echo '
      </tr>';
    }
    echo '
    </table>';

これまでのところ、最後のチェック ボックスで要件 = を微調整してみました。しかし、NULL ectを使用するかどうかは同じままであるため、何かが足りないと推測しています。

敬具、

n00bstacker

4

1 に答える 1

1

次のifステートメントを使用して、状況を特定し、適切に対応できます。

            $order4 = "SELECT * FROM document_assoc WHERE doc_id = '$doc_id'";
                $result4 = mysql_query($order4);
                $_results = mysql_fetch_array($result4);
                if (!$_results) {
                       <<<< OUTPUT THE CHECKBOXES/INPUTS YOU NEED >>>>
                } else {
                   foreach ($_results as $result) {

                $requirement = $result['requirement'];

echo '

    <td><input type="checkbox" name="req" value="2" '; if ($requirement == 2) { echo ' checked '; } echo '></td>
    <td><input type="checkbox" name="opt" value="1" '; if ($requirement == 1) { echo ' checked '; } echo '></td>
    <td><input type="checkbox" name="not" value="0" '; if ($requirement < 1) { echo ' checked '; } echo '></td>';
}

}

お役に立てれば!

于 2013-02-02T00:27:22.650 に答える