根据数组数据分离数组

时间:2013-02-02 00:17:41

标签: php mysql

我想为文档创建一个表,并允许用户选择是否需要与任务相关的文档。我需要它来检查文档的当前状态以查看是否已经需要它以及是否将勾选框标记为已选中。目前,数据库中有4个文档,只有2个与该特定任务的2个文档相关联。

当没有文档与任务的关联时,数据库中没有条目表明它没有关联,只是简单的不在该表中。

我目前的代码将显示针对那些具有关联的2个文档的复选框,但是对于没有关联的文档,根本不显示任何勾选框。我希望它仍然显示3个复选框,以便用户可以更改其关联,但默认情况下应检查不需要。目前它根本没有显示任何勾选框。下面是PHP剪辑。请告知您是否需要屏幕截图或数据库转储。

非常感谢任何帮助。我希望它只是漫长的一天,我忘记了一些简单的事情。

    <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等,它保持不变 - 我猜我错过了什么。

亲切的问候,

n00bstacker

1 个答案:

答案 0 :(得分: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>';
}

}

希望这有帮助!