1

我有一个有 5 列的表。ID、姓名、姓氏、公司和头衔。

所以我现在要做的是在提交过程中检查重复条目,比较姓名和姓氏组合匹配。然后,这应该会导致重复条目的警报以及继续并将其保存到数据库中的选项,或者取消内容的提交。

提前致谢。

4

2 回答 2

0

好吧,这就是我尝试过的,但是还没有弄清楚问题中提到的可选选择代码。

$query = "INSERT INTO phptablo (Name, Surname, Company, Title) VALUES ('$name', '$surname', '$company', '$title')";

$sql = "SELECT Name AND Surname FROM phptablo WHERE Name = '$name' AND Surname= '$surname'";

$result = mysql_query($sql);
$count = mysql_num_rows($result);
$row = mysql_fetch_array($result);

echo "$sql" . '<br/><br/>'; 

echo "$result" . '<br/><br/>';

if ($count==0)
{
    if (!mysql_query($query)) 
    {
        die('Error: ' . mysql_error());
    }

    echo "Successful Entry!";
}
else 
{
    echo "Duplicate Entry found!";
}

我对 php 和 MySQL 很陌生,所以不能真正充分利用您非常感谢的答案。有没有机会添加一些代码让我可以选择是否保存它?

我现在所在的位置,如果检测到重复条目,则输入不会保存到数据库中,否则会立即存储。如果我写的代码无论如何都不能以保存重复项的方式进行更改,我也可以在保存后使用某种屏幕显示重复项,以便可以编辑、删除它们等。

于 2012-05-25T10:57:38.453 回答
0

你有这个选项:

  • 在“(姓名,姓氏)”上设置常规索引
  • 在每次插入之前,检查“(name, surname)”组合是否已经存在
  • 如果不存在,请正常插入 [这里由您来考虑在这 1 毫秒时间内其他人可能已经完成相同插入的风险]
  • 如果 EXISTS AND 强制模式,无论如何添加行
  • 如果 EXISTS AND NOT 强制模式,请根据您的规范继续到客户端
  • 如果客户端仍然想保存,请在强制模式下重复操作。

如果您真的认为这是值得的,这里的替代方法是无论如何插入行,然后检查是否有以前的行。如果客户想保留记录,请留下,否则删除。

rgds

于 2012-05-24T14:15:12.870 回答