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.