【问题标题】:if/else for non-duplicate of dataif/else 用于不重复数据
【发布时间】:2013-04-26 16:34:38
【问题描述】:

我遇到了问题,我的代码似乎不正确。我想要的是防止数据重复。在这个数组提交表单结果中,如果用户已经有该行的种类,他只能插入表中没有的数据。我当前的代码不会插入所有数据。但是如果去掉 if else 语句,循环内的所有数据都可以插入。

    if(isset($_POST['submit']))
    {
        $var_emp_id = $_POST["emp_id"];
        $var_task_id = $_POST["task_id"];
        $var_weight = $_POST['weight'];
        $submit=$_POST['submit'];

        for ($i = 0; $i <= count($var_emp_id); $i++)
        {
            $sql=mysql_query("SELECT emp_id,task_id FROM peval_tbl WHERE emp_id = '$var_emp_id[$i]' AND task_id = '$task_id[$i]'");

            while($row=mysql_fetch_assoc($sql))
            {

                $emp_id = $row['emp_id'];
                $task_id = $row['task_id'];

                if ($var_emp_id[$i] ==  $emp_id && $var_task_id[$i] == $task_id){
                mysql_query("INSERT IGNORE INTO peval_tbl(weight,task_id,emp_id)                         VALUES('$var_weight[$i]','$var_task_id[$i]','$var_emp_id[$i]')");                                  

            }
        else{   
            error_reporting(E_ALL ^ E_NOTICE);

            for ($i = 0; $i <= count($var_emp_id); $i++)
        {
        mysql_query("INSERT INTO peval_tbl(weight,task_id,emp_id)                         VALUES('$var_weight[$i]','$var_task_id[$i]','$var_emp_id[$i]')");

        }
        }
        }
    }
    }

【问题讨论】:

    标签: php loops duplicates if-statement


    【解决方案1】:

    我建议在表上的唯一列上放置一个主键,然后使用 INSERT IGNORE 查询来加载(IGNORE 这样它就不会在重复时引发错误)。

    【讨论】:

      猜你喜欢
      • 2014-08-08
      • 2021-12-31
      • 2021-08-26
      • 2015-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-29
      • 2021-11-25
      相关资源
      最近更新 更多