1
Database: Links

Table: Company (id INT, name VARCHAR)
Table: Employee (id INT, name VARCHAR, company_id INT)
Table: Links (id INT, name VARCHAR, employee_id)

上面最终显示了某个公司的某个人可以点击的链接列表。

我正在尝试开发更新用户页面。

到目前为止,我已经获得了公司和员工的下拉菜单和复选框,以突出显示用户可以看到的内容。

我可以很高兴地通过一个表格来解析这些。我的问题是:

如何将以下内容转换为可以为其他 11 个复选框复制的单行?

if ($_POST[Protection]=1 AND *SEE BELOW*=0)
{
$sql="INSERT INTO links (ID, name, employee_id) VALUES ('', 'Protection', '$_POST[emp_id]')";
}

if ($_POST[Protection]=0 AND *SEE BELOW*=1)
{
//DROP From links
}


*FROM ABOVE*
$query= 'SELECT * FROM links'." WHERE id=$POST[id] AND name=Protection"; 
$result = mysql_query($query) or die ("Error in query: $query " . mysql_error()); 
$row = mysql_fetch_array($result); 
$num_results = mysql_num_rows($result);
4

1 回答 1

1

您可以创建一个可用复选框的数组并在循环中迭代它们:

$checkboxes = array('Protection', 'AnotherOption', 'YetAnotherOption');

foreach ($checkboxes AS $key => $value)
{
    if (!isset($_POST[$value]) continue;

    if ($_POST[$value] == 1)
        mysql_query("INSERT INTO links (ID, name, employee_id) VALUES ('', '$value', '{$_POST['emp_id']}')");

    elseif ($_POST[$value] == 0)
        mysql_query("DELETE FROM links WHERE employee_id='{$_POST['emp_id']}' AND name='$value'");
}

或者

foreach ($_POST AS $key => $value)
{
    if (in_array($key, $checkboxes))
    {
        if ($value == 1)
            mysql_query("INSERT INTO links (ID, name, employee_id) VALUES ('', '$key', '{$_POST['emp_id']}')");

        elseif ($value == 0)
            mysql_query("DELETE FROM links WHERE employee_id='{$_POST['emp_id']}' AND name='$key'");
    }
}
于 2013-09-24T15:10:47.983 回答