Php 如何在不显示记录ID的情况下唯一标识记录?
在我正在设计的网站中,管理员列表页面显示了姓名、电子邮件、用户名和状态(无论是活跃用户还是非活跃用户)等字段。我的数据库有一个名为admin的表。这些字段是iAdminId、vFirstName、vLastName、vEmail、vUserName、vPassword、vFromIP、vFromIP、dLastLogin和eStatus 在等效的PHP页面(管理列表页面)中,我需要添加一个删除按钮。每行都有复选框。管理员选择的行数将在单击“删除”按钮后删除(当然,在确认后)。我的问题是,因为我在我的列表页面中没有提到iAdminId字段,如何唯一地标识每个记录 我要删除的脚本代码是:Php 如何在不显示记录ID的情况下唯一标识记录?,php,mysql,Php,Mysql,在我正在设计的网站中,管理员列表页面显示了姓名、电子邮件、用户名和状态(无论是活跃用户还是非活跃用户)等字段。我的数据库有一个名为admin的表。这些字段是iAdminId、vFirstName、vLastName、vEmail、vUserName、vPassword、vFromIP、vFromIP、dLastLogin和eStatus 在等效的PHP页面(管理列表页面)中,我需要添加一个删除按钮。每行都有复选框。管理员选择的行数将在单击“删除”按钮后删除(当然,在确认后)。我的问题是,因为我在
function deleteRecord()
{
var count = getCount();
if(count == 0)
{
alert("Please enter some records for deletion first!!");
}
else
{
var c = confirm("Do you wish to delete?");
if(c==true)
{
document.frm.mode.value="Delete";
document.frm.submit();
}
else
{
alert("You had wrongly selected 'Delete' option!!");
}
}
}
getCount返回所选记录的数量。
PHP代码是
if($mode=="Delete")
{
for($i=0;$i<count($_POST['ch']);$i++)
{
$delete = "DELETE FROM admin WHERE Name = '".$_POST["ch"][$i]."'";
$result = mysql_query($delete);
}
}
if($mode==“Delete”)
{
对于($i=0;$i我会将复选框的值(有时人们使用元素的name或ID属性)设置为“admin_n”或“user_n”,其中n=ID。当按下delete后提交表单时,可以解析该名称以拉出ID并以这种方式进行处理
这当然会在源代码中给出用户的ID,但这并不是一个真正的问题,除非您的代码中存在疯狂的安全漏洞。如果电子邮件对每个用户都是唯一的,并且您有确保这种唯一性的检查,那么它可以用于其他用户,没有简单的方法可以做到这一点。唯一的方法是将ID放在列表中.
这是每行的唯一标识符,因为可以重复使用任何列的组合。
另一个选项是跨上述两个字段创建复合主键,或在电子邮件字段上创建唯一键
例如,确保电子邮件是唯一的,或者名字和姓氏的组合是唯一的。您介意在客户端源代码中显示此ID吗?非常感谢。这可能是唯一可用的方法。再次感谢