[英]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.