php - 检查mysql中表单值的重复

标签 php mysql

我正在尝试为具有以下字段的注册表编写代码。姓名、电子邮件地址、出生日期、地址等。如果新参赛者的姓名和电子邮件地址与
相符 现有的,它应该要求提供另一个姓名和电子邮件。

我使用了以下代码。

<?php
$sel = "SELECT `varEmail`, `intStudentId`  FROM `tbl_registration` WHERE `varEmail` = '".$emailaddress."' AND `intStudentId` <> '".$Id."' ";
$res = mysql_query($sel);
if(mysql_num_rows($res) >0)
{ ?>
<h3 style="color:#FF0000; text-align:center;">The Email Address and name already exists. Please mention different one.</h3>
<?php
}

else
     {

 $insertstudent="INSERT INTO `tbl_registration` (
`varFname` ,
`varLname` ,
`varAddress` ,
`varGender` ,
`intDOB` ,
`varEmail`
)
VALUES (
'".$fname."',  '".$lname."',  '".$address."',  '".$gender."',  '".$DOB."',  '".$emailaddress."'
);";
$insert_res = mysql_query($insertstudent);
     }

?>

但它只检查电子邮件重复。如何修改我的代码以检查姓名和电子邮件重复?

最佳答案

应该检查哪个名称字段? fname、lname 或两者兼而有之?

名字:

$sel = "SELECT `varEmail`, `intStudentId`  FROM `tbl_registration` WHERE (`varEmail` = '".$emailaddress."' OR `varFname` = '".$fname."') AND `intStudentId` <> '".$Id."' ";

姓氏:

$sel = "SELECT `varEmail`, `intStudentId`  FROM `tbl_registration` WHERE (`varEmail` = '".$emailaddress."' OR `varLname` = '".$lname."') AND `intStudentId` <> '".$Id."' ";

对于两者:

$sel = "SELECT `varEmail`, `intStudentId`  FROM `tbl_registration` WHERE (`varEmail` = '".$emailaddress."' OR (`varLname` = '".$lname."' AND `varFname` = '".$fname."')) AND `intStudentId` <> '".$Id."' ";

关于php - 检查mysql中表单值的重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8849884/

相关文章:

php - 我可以通过 socket_sendmsg (sendmsg) 将 TCP 套接字资源传递给 AF_UNIX 本地套接字吗?如果可以,如何传递?

JavaScript 正则表达式排除括号

mysql - Openbravo Mysql db脚本语法错误

mysql - MySQL 8 的这种语法有什么问题? ,5.7 运行良好

php - 在 Symfony 2 中加入查询

php - 返回警告错误

PHP MYSQL 从多个列中获取最小值

javascript - Ajax 返回空数组?

php - 两种类型的用户登录系统

mysql - 为什么变量 _count 总是返回 -1?