繁体   English   中英

PHP MYSQL更新表

[英]PHP MYSQL update table

我正在使用MYSQL和php将数据插入到我的sql中。

我有两个表用户和用户权限。

我正在使用复选框在用户编辑页面上显示权限。 当取消选择权限或选择权限时,我将不会更新我的用户权限表。

CREATE TABLE userrights (
  userid int(11) NOT NULL default '0',
  right_name varchar(50) collate latin1_general_ci NOT NULL default '',
  PRIMARY KEY  (userid,right_name)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;


INSERT INTO userrights (userid, right_name) VALUES
(1, 'add'),
(1, 'delete'),
(1, 'edit'),
(1, 'view'),
(2, 'add'),
(2, 'delete'),
(2, 'edit'),
(2, 'view');

CREATE TABLE users (
  id int(11) NOT NULL,
  `name` varchar(100) collate latin1_general_ci default NULL,
  email varchar(100) collate latin1_general_ci default NULL,
  pass varchar(42) collate latin1_general_ci default NULL,
  PRIMARY KEY  (id)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;

INSERT INTO users (id, name, email, pass) VALUES
(1, 'name', 'email@email.com', '5f4dcc3b5aa765d61d8327deb882cf99'),
(2, 'name name', 'email2@email.com', '1a1dc91c907325c69271ddf0c944bc72');

我该怎么做呢?

我之前也遇到过类似的问题。

我想出的解决方案是截断表并重新插入所有选定的条目。

您获得复选框的数据(对或错)

$rows = mysql_num_rows(mysql_query("SELECT * FROM userrights WHERE id = 'x' and right_name = 'y'"); // Please use insted of mysql_* PDO or MySQLi 
if ($rows > 0)
{
        if ($checkbox == false)
        {
        mysql_query("DELETE FROM userrights WHERE id = 'x' AND right_name = 'y'");
        }
}
else
{
// Recht nicht vorhanden --> if checkbox == true
      if ($checkbox == true)
      {
      mysql_query("INSERT INTO... VALUES ($id, $right_name)
      }
}

首先,您检查用户是否有权限。 如果是,则需要检查右侧(复选框中的数据)是否设置为false->从表中删除该行。 如果用户没有该权限,并且该复选框为true,则必须在mysql_table中插入该复选框。 注释必须在代码中更改为if-clause。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM