PHP检查重复的证书编号MySQL表

如何解决PHP检查重复的证书编号MySQL表

| 我有一个接受多个输入然后将其提交到数据库的表单,但是有一个字段保存记录的证书编号,我想在插入数据之前查询数据库以确保证书编号不存在。输入字段时(即用户在字段中跳出然后显示通知时),我可以这样做吗? 如果是这样的话,有人可以发布一个有关如何执行此操作的示例。 MysqL表称为-合同 MysqL字段称为-guarantee_no 表单POST \的create.PHP(下面的代码
<?PHP
    include \"includes/connection.PHP\";

    $installer      = $_POST[\'inputInstaller\'];
    $fitter         = $_POST[\'inputFitter\'];
    $guarantee      = $_POST[\'inputGuaratnee_no\'];
    $equipment      = $_POST[\'inputEquipment\'];
    $certificate    = $_POST[\'inputCertificate_no\'];
    $installed      = $_POST[\'inputInstall_date\'];

    if(!$_POST[\'submit\']){
        echo \"Please Enter Data into the Form\";
        printf(\"<script>location.href=\'index.PHP\'</script>\");
    } else {
        MysqL_query(\"INSERT INTO contract (`id`,`user_id`,`installer`,`fitter`,`guarantee_no`,`contact_id`,`equipment`,`certificate_no`,`install_date`)
                       VALUES(NULL,\'1\',\'$installer\',\'$fitter\',\'$guarantee\',NULL,\'$equipment\',\'$certificate\',\'$installed\')\") or die(MysqL_error());
        echo \"Guarantee Record was Added,Thank You!\";
        printf(\"<script>location.href=\'index.PHP\'</script>\");
    }               
?>
谢谢您的帮助     

解决方法

        根据您的问题。如果要在PHP中使用该验证。您可以使用
$_SESSION
变量。 在您的操作文件中。 采用:
<?php
    session_start();
    include \"includes/connection.php\";

    $installer      = $_POST[\'inputInstaller\'];
    $fitter         = $_POST[\'inputFitter\'];
    $guarantee      = $_POST[\'inputGuaratnee_no\'];
    $equipment      = $_POST[\'inputEquipment\'];
    $certificate    = $_POST[\'inputCertificate_no\'];
    $installed      = $_POST[\'inputInstall_date\'];

    if($installer == \'\' || $fitter == \'\' || $guarantee == \'\' || $equipment == \'\' || $certificate == \'\' || $installed == \'\'){
        $_SESSION[\'status\'] = \'error\';
    } else {
        mysql_query(\"INSERT INTO contract (`id`,`user_id`,`installer`,`fitter`,`guarantee_no`,`contact_id`,`equipment`,`certificate_no`,`install_date`)
                       VALUES(NULL,\'1\',\'$installer\',\'$fitter\',\'$guarantee\',NULL,\'$equipment\',\'$certificate\',\'$installed\')\") or die(mysql_error());
        $_SESSION[\'status\'] = \'success\';
   }               
header(\"location: index.php\");
?>
现在在您的
index.php
文件中。 在顶部使用:
<?php
session_start();
if($_SESSION[\'status\'] == \'error\') {
$msg = \"Fill all form fields\";
}
if ($_SESSION[\'status\'] == \'success\'){
$msg = \"Record succesfully added\";
}
?>
现在在要打印消息的位置使用那个“ 5”变量。 喜欢:
<?php echo isset($msg) ? $msg : \'\' ?>
注意:如果您不想重新加载页面,则应使用带有PHP的Ajax。这只是简单的方法。您可以相应地使用。 希望可以帮助..欢呼.. !!     ,        您可以自己对其进行编程,但是由于客户端无法知道所有用户名,因此您必须询问服务器。提交后,告诉用户名称已使用,或者使用AJAX。 但是我建议您使用许多已经编写的插件之一。 我强烈建议使用jQuery Validator插件-他们有一个可以完全满足您需要的示例,您可以看到它们使用的代码。     ,        “制表符”是可行的,但需要使用AJAX系统进行检查。这样的系统很容易受到竞争条件的影响(例如,退出系统,一切正常,但是在10秒钟内用户到达鼠标并单击提交,其他人创建了相同的记录),因此您仍然需要提交以及时间检查。 对于服务器端检查,您只需执行一次“ 7”查询以查找证书编号,并且如果返回任何行,则表明正在使用证书编号。如果正在使用中,则不要执行插入操作。为了获得更好的安全性,您需要添加一些事务并锁定到组合中,以使检查和插入之间的时间不易受到其他用户的偷猎。     ,        您将不得不使用AJAX。最好的选择就是使用jQuery.ajax 您需要如下所示的javascript:
$(\"#your_form_element\").blur(function(){
  $.ajax({
       url: \"test_for_dupe.php?val=\" & $(this).val(),context: document.body,success: function(){
         alert(\"Certificate already in DB!\");
       };
 });

};
这是一个通用示例。您的字段必须具有ID =
your_form_element
,并且需要一个名为
test_for_dupe.php
的PHP文件来运行查询。您可能应该看一下jQuery示例并尝试解决这个问题。如果您需要更多帮助,请发布另一个问题。希望这能帮助您前进。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?