dongxingqiu7943 2015-11-25 12:58
浏览 60

如何在php导入中获取错误行值

Hai i am using php to import a .csv file. The code is working fine. Now i am showing only error message if the data is not import means. I want to show the error message with wrong fileds. Here is my code :

if (isset($_POST["submitbutton"])) {
 if (!empty($_FILES['file']['name'])) {
    if (pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION) == 'csv') {
        $handle = fopen($_FILES['file']['tmp_name'], "r");

        //Grab the header in csv
        $headers = fgetcsv($handle, 1000, ",");

        $not_valid = [];
        $i = 1;
        while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
            $aValid = false;
            $field1 = mysqli_real_escape_string($dbConnection, $data[0]);
            $field2 = mysqli_real_escape_string($dbConnection, $data[1]);
            $field3 = mysqli_real_escape_string($dbConnection, $data[2]);
            $field4 = mysqli_real_escape_string($dbConnection, $data[3]);

            /* To Upload course Subscription data only course_id equal (25-11-2015) */

            $sql = "select * from m_tl_course where id='$field2'";
            $check = mysql_query($sql);

            $sql1 ="select * from m_tl_user where id ='$field1'";
            $check1 = mysql_query($sql1);

            $sql4 = "select * from m_tl_role where id = '$field4'";
            $check4 = mysql_query($sql4);

            $sql2 = "select * from m_tl_subscription inner join m_tl_mastercourse on m_tl_subscription.Master_id = m_tl_mastercourse.Id where m_tl_mastercourse.LMS_Course_Id = '$field2'";
            $check2 = mysql_query($sql2);

            //$sql3="SELECT * FROM m_tl_role_assignments inner join m_tl_context  where m_tl_role_assignments.userid='$field1' and m_tl_role_assignments.roleid='$field4' and m_tl_context.instanceid='$field2' and m_tl_context.contextlevel='50' ";

            $time=strtotime("now");
            $enrol="manual";

            if((mysql_num_rows($check) > 0 && mysql_num_rows($check1) > 0 && mysql_num_rows($check4) > 0 ) && ( mysql_num_rows($check2) < 1  && mysql_num_rows($check3) < 1)) {
                 $aValid = true;
            } else {                    
                $not_valid[] = $i;                   
            }   

            if ($aValid) {                    
                 $ret = "select m_tl_mastercourse.* from m_tl_mastercourse inner join m_tl_course on m_tl_mastercourse.LMS_Course_ID = m_tl_course.id where m_tl_course.id='$field2'";
                 $result=get_records_sql($ret,$limitfrom='', $limitnum='');
                 foreach($result as $res) {
                 $master_id = $res->Id;
                 }                    
                 $ret1 = "select * from m_tl_user  where id='$field1'";
                 $result1=get_records_sql($ret1,$limitfrom='', $limitnum=''); 

                 foreach($result1 as $res1) {
                 $user_id = $res1->id;
                 }

                $ret2="SELECT m_tl_context.id FROM m_tl_context inner join m_tl_course on 
      m_tl_context.instanceid=m_tl_course.id where m_tl_course.id = '$field2' and m_tl_context.contextlevel = '50' ";
                $result3=get_records_sql($ret2,$limitfrom='', $limitnum='');

                foreach($result3 as $res2) {
                    $context_id = $res2->id;
                }     

                $import1= "Insert into m_tl_role_assignments values('','$field4','$context_id','$user_id','0','$time','0','0','$roleid','$enrol','0')"; 
                mysql_query($import1);                    
                $import = "INSERT into m_tl_subscription values('','$user_id','$master_id')";
                mysql_query($import);                                       
            }           

            $i++;
        }
        fclose($handle);

        if (!empty($not_valid)) {

            $total_rows = $i - 1;
            $valid_rows = $i - 1 - count($not_valid);
            $invalid_rows = count($not_valid);

            $v_ids = implode(', ', $not_valid);

            echo "You are Uploading " . $total_rows. " Records. " . " <br><br> ". "In this " . $valid_rows . " Records are Inserted Successfully. and  " . $invalid_rows . " records are failed to insert. " ."<br><br>". " So  Please check the following csv Row Number's - " . $v_ids;
        } else {
            echo "Course Subscription Uploaded Successfully";
        }
    } else {
        echo "<script>alert('csv files only allowed to upload')</script>";
    }
} else {
    echo "<script>alert('Please select a file')</script>";
}
  }
        if (is_uploaded_file($_FILES['file']['tmp_name']) && $_FILES['file']['error'] == 0) {

$target_Path = "../moodle/upload/";
$target_Path = $target_Path . basename($_FILES['file']['name']);
$file_location = move_uploaded_file($_FILES['file']['tmp_name'], $target_Path);

 }

How to get the particular error field value.

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 stata安慰剂检验作图但是真实值不出现在图上
    • ¥15 c程序不知道为什么得不到结果
    • ¥40 复杂的限制性的商函数处理
    • ¥15 程序不包含适用于入口点的静态Main方法
    • ¥15 素材场景中光线烘焙后灯光失效
    • ¥15 请教一下各位,为什么我这个没有实现模拟点击
    • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
    • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
    • ¥20 有关区间dp的问题求解
    • ¥15 多电路系统共用电源的串扰问题