【问题标题】:check duplicate value based on category selected and avoid inserting into mysql根据选择的类别检查重复值并避免插入 mysql
【发布时间】:2016-05-26 03:32:04
【问题描述】:

我有一个从 mysql 和文本框中获取的类别的选择选项,用于输入该类别的值并提交按钮以在数据库中输入该值,如下所示。

HTML Page

现在,在选择类别后,我在文本框中输入了该特定类别的一些值,然后点击提交按钮。但在我插入之前,我想检查该类别的重复值,所以当我点击提交按钮时,它应该检查数据库中选择的类别的数据库中的值,如果值已经存在而不是显示错误,否则插入数据库。

我的代码

index.php

       <form action="action.php" enctype="multipart/form-data" method="post">


       <div class="row">

        <div >

         <label>Category</label>
          <br>


        <select name="cat" id="cat" style="width:100%;height:0.27in" required >
      <option  value="0000" selected="selected">Select cat</option><?php
       include ('connection.php');
        $qry_sel_dept="select * from general_master where name_cd = 'Ptype' ";
        $qry_sel_dept_exe=mysql_query($qry_sel_dept);

        while($fetch=mysql_fetch_array($qry_sel_dept_exe)){
        ?>
                <option  value="<?php echo $fetch['c_id'];?>" ><?php echo $fetch['category'];?></option>

              <?php }

              ?></select>
       <input type="text" name="te" id="te" />
        <input type="submit" name="submit" id="submit" />

action.php

      <?php
     include('./../connection.php');
     if(isset($_POST['submit'])){
     $cat=$_REQUEST['cat'];
     $te=$_REQUEST['te'];

      $sqlc= mysql_query("INSERT INTO general_master set category='".$cat."' , name= '".$te."' " );

      }
      ?>

mysql表包含

  • c_id

  • 类别

  • 姓名

可以使用 javascript 和 ajax 来完成吗?怎么样?

任何帮助将不胜感激。提前致谢

【问题讨论】:

  • 保持简单,首先将支票添加到您的action.php
  • 如何同时查看类别及其值?
  • 使用搜索条件中的这两列编写"SELECT COUNT(*) as knt WHERE category='$cat' AND name= '$te'" 查询。如果计数为 1,则它已经存在,如果返回 0,则它不存在。 SQL 102
  • 建议:对不希望有重复值的字段使用约束UNIQUE。无需检查是否存在重复值,只要密钥准备好避免系统重复即可:dev.mysql.com/doc/refman/5.7/en/constraint-primary-key.html
  • insert into table_name set ...??,是否有任何有效的插入查询?

标签: php mysql


【解决方案1】:

您可以使用复合查询来执行此操作,该查询检查类别是否在数据库中,如果没有则插入。

查看示例:

include('./../connection.php');
if(isset($_POST['submit'])){
    $cat = $_REQUEST['cat'];
    $te = $_REQUEST['te'];

    $sql = "INSERT INTO general_master
    (category, name)
     SELECT * FROM (SELECT '$cat', '$te') AS tmp
    WHERE NOT EXISTS (
        SELECT category FROM general_master WHERE category = '$cat'
    )";
    $sqlc = mysqli_query($con, $sql);
}

$con 是连接。 这可能会对您有所帮助。让我知道它是否有效。

【讨论】:

    猜你喜欢
    • 2017-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-10
    • 1970-01-01
    • 1970-01-01
    • 2015-08-09
    相关资源
    最近更新 更多