csv file reader in php
<quote>
<?php
include 'connection.php';
$row = Array();
$headers = Array();
$tabColumn = Array();
$filename='';
$fileTemp='';
$tablename = '';
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Campaign - info</title>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700&display=swap">
<!-- Bootstrap core CSS -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.5.0/css/bootstrap.min.css" rel="stylesheet">
<!-- Material Design Bootstrap -->
<link href="https://cdnjs.cloudflare.com/ajax/libs/mdbootstrap/4.19.1/css/mdb.min.css" rel="stylesheet">
<link rel="stylesheet" href="css/style.css">
<style>
*{
/* color:black; */
}
.my-custom-scrollbar {
position: relative;
height: 250px;
overflow: auto;
}
.table-wrapper-scroll-y {
display: block;
}
</style>
</head>
<body>
<div class="container pt-5">
<div class="row border border-muted shadow-sm">
<div class="col-md-7 col-12 mx-auto">
<section class="mt-5">
<h1 class="text-info">Manage campaign : </h1>
</section>
<?php if($_SERVER["REQUEST_METHOD"] != "POST"): ?>
<section class="pt-3">
<div class="custom-file pt-2">
<button class="btn btn-primary createNewCampaignbtn"><i class="fa fa-plus"></i> Create New</button>
<a href='dashboard.php'class="btn btn-info"><i class="fa fa-home" style="font-size:18px"></i> Dashboard</a>
</div>
</section>
<?php endif;?>
<section class="pt-5">
<div>
<div class="alert alert-warning alert-dismissible d-none fade show warningAlert">
<!-- <button type="button" class="close" data-dismiss="alert">×</button> -->
<p class="m-0 message">
<strong>Warning!</strong> This alert box could indicate a warning that might need attention.
</p>
</div>
<?php
if($_SERVER["REQUEST_METHOD"] != "POST"){
?>
<div class="first_outerDiv d-none">
<p class="pb-3">Create campaign : </p>
<div class="md-form">
<input type="text" id="form1" class="form-control">
<label for="form1">Enter campaign name</label>
</div>
<button class="btn btn-info btn-sm" id="createNewCampaign">create</button>
</div>
<?php
}
?>
<section class="py-3">
<form action="#!" id="createCampData" class="d-none" method="post" enctype="multipart/form-data">
<div class="first_select_div">
<p>Upload file : </p>
<input type="hidden" id="hiddenField" name="campId" value="">
<div class="custom-file">
<input type="file" class="custom-file-input createUploadFile" id="customFileLang" lang="en" name="fileuploadcreate">
<label class="custom-file-label" for="customFileLang">select file</label>
<p class="text-danger"><small> * upload a comma separated csv file.</small></p>
</div>
<div class="pt-3">
<button class="btn btn-info btn-sm" name="mappFormdata" type="submit">upload</button>
</div>
</div>
</form>
<?php
$arrField = [];
if(isset($_POST['mappFormdata'])){
extract($_POST);
$filename = $_FILES['fileuploadcreate']['name'];
$fileTemp = $_FILES['fileuploadcreate']['tmp_name'];
$fopen= fopen($fileTemp , 'r');
$headers = fgetcsv($fopen);
$first_line = implode(',',$headers);
$first_line_encode = base64_encode($first_line);
//select campaign table start
$sel = mysqli_query($conn , "SELECT `first_line_enc` FROM `campaign_info` WHERE `id`='$campId'");
$nr = mysqli_num_rows($sel);
if($nr){
$r = mysqli_fetch_assoc($sel);
if($r['first_line_enc'] == NULL){
$udate = mysqli_query($conn , "UPDATE `campaign_info` SET `first_line_enc`='$first_line_encode' WHERE `id`='$campId'");
}
}
//select campaign table end
while($row = fgetcsv($fopen)){
$row = preg_replace('/"/','',$row);
foreach($row as $k=>$v){
if ($v==''){
$row[$k]='-';
}
}
$row_string = implode("^&$" , $row);
// echo preg_replace('/"/','',$row).'<br>';
array_push($arrField , $row_string);
}
// echo "<pre>";
// print_r($arrField);
// echo "</pre>";
// $str = preg_replace('/"/',"",implode('*,*',$arrField));
// var_dump($str);
// die;
?>
<form action="#!" method="post" id="emailSelectedData">
<div class="row py-4">
<div class="col-12 pb-3 text-dark">Select columns : </div>
<div class="col-12 col-md-6 text-dark">Email <span class="float-right">:</span> </div>
<div class="col-12 col-md-6">
<select class="custom-select custom-select-sm" name="emailIndex">
<option selected>Open this select menu</option>
<?php
foreach($headers as $k=>$v){
?>
<option value="<?php echo $k; ?>"><?php echo $v; ?></option>
<?php
}
?>
</select>
</div>
<br>
<div class="col-12 pb-3">Select name column : </div>
<div class="col-12 col-md-6 text-dark">Name <span class="float-right">:</span> </div>
<div class="col-12 col-md-6">
<select class="custom-select custom-select-sm" name="nameIndex">
<option selected>Open this select menu</option>
<?php
foreach($headers as $k=>$v){
?>
<option value="<?php echo $k; ?>"><?php echo $v; ?></option>
<?php
}
?>
</select>
</div>
<br>
<div class="col-12 pb-3">Select name column : </div>
<div class="col-12 col-md-6 text-dark">Phone <span class="float-right">:</span> </div>
<div class="col-12 col-md-6">
<select class="custom-select custom-select-sm" name="phoneIndex">
<option selected>Open this select menu</option>
<?php
foreach($headers as $k=>$v){
?>
<option value="<?php echo $k; ?>"><?php echo $v; ?></option>
<?php
}
?>
</select>
</div>
<br>
<div class="col-12 pb-3">Select name column : </div>
<div class="col-12 col-md-6 text-dark">Company <span class="float-right">:</span> </div>
<div class="col-12 col-md-6">
<select class="custom-select custom-select-sm" name="DesignationIndex">
<option selected>Open this select menu</option>
<?php
foreach($headers as $k=>$v){
?>
<option value="<?php echo $k; ?>"><?php echo $v; ?></option>
<?php
}
?>
</select>
<input type="hidden" name="headerOfFIle" value="<?php echo implode(',',$headers);?>">
<input type="hidden" name="tableData" value="<?php echo implode('$#&',$arrField);?>">
<input type="hidden" value="<?php echo $campId;?>"name="campaign_id">
</div>
</div>
<div class="custom-file py-2">
<button class="btn btn-info btn-sm" name="finalsubmition" type=submit>Import</button>
</div>
</form>
<?php
}
?>
</section>
<div id="dynamicLoader"></div>
</div>
</section>
</div>
<div class="col-12 col-md-5 border border-muted border-right-0 border-bottom-0 border-top-0">
<section class="mt-5 text-center">
<h5 class="text-info">Existing Campaign List: </h5>
</section>
<hr>
<section>
<div class="table-wrapper-scroll-y my-custom-scrollbar">
<table class="table table-bordered">
<thead>
<th>Campaign Name</th>
<th>Operations</th>
</thead>
<tbody>
<?php
$sel = mysqli_query($conn , "SELECT * FROM `campaign_info`");
$numr = mysqli_num_rows($sel);
if($numr){
while($row = mysqli_fetch_assoc($sel)){
$id = $row['id'];
$visible = '';
$selCount = mysqli_query($conn , "SELECT `id` FROM `campaign_info_data`WHERE `campaign_id`='$id'");
$numcount = mysqli_num_rows($selCount);
if($numcount){
$visible = $numcount;
}
if($visible){
?>
<tr>
<td><small> <?php echo $row['name'];?></small></td>
<td class="text-center"><a href="downloadCampData.php?id=<?php echo $row['id'];?>"><i class="fa fa-download" style="font-size:18px"></i></a></td>
</tr>
<?php
}
}
}else{
?>
<tr>
<td colspan="2" class="text-center">No campaign available</td>
</tr>
<?php
}
?>
</tbody>
</table>
</div>
</section>
</div>
</div>
</div>
<!-- JQuery -->
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<!-- Bootstrap tooltips -->
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.4/umd/popper.min.js"></script>
<!-- Bootstrap core JavaScript -->
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.5.0/js/bootstrap.min.js"></script>
<!-- MDB core JavaScript -->
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mdbootstrap/4.19.1/js/mdb.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"></script>
<script>
$(document).ready(function(){
$('#createNewCampaign').on('click',()=>{
$('.warningAlert').addClass('d-none');
var camp_name = $('#form1').val();
if(camp_name == ''){
$('#form1').css('border-bottom','1px solid tomato');
}else{
$.ajax({
url:'handleCampaign.php',
method:'post',
data:{'createCampaign':camp_name},
beforeSend:xhr=>{
$('#dynamicLoader').addClass('loader');
},
success:data=>{
// alert(data);
$('#dynamicLoader').removeClass('loader');
if(data == 'exist'){
$('.warningAlert').removeClass('d-none');
$('.warningAlert .message').html("<strong>Warning!</strong> campaign name already exists.")
}else if(data == 'failed insertion'){
$('.warningAlert').removeClass('alert-warning');
$('.warningAlert').removeClass('d-none');
$('.warningAlert').addClass('alert-danger');
$('.warningAlert .message').html("<strong>Warning!</strong> Internal error please try again later.")
}
if($.isNumeric(data)){
$('#hiddenField').val(data);
// console.log(data);
$('.first_outerDiv').addClass('d-none');
$('#createCampData').removeClass('d-none').show('slow');
}
},
error:xhr=>{
}
})
}
});
$('#formDataForImport').on('submit',(e)=>{
var file = $('#customFileLang123').val();
var camp = $('#select_campaign').val();
if(file == '' || camp == ''){
alert('all fields are required!');
e.preventDefault();
}
});
$('#createCampData').on('submit',(e)=>{
var file = $('.createUploadFile').val();
if(file == ''){
alert('please select the file first!');
e.preventDefault();
}
});
$('#emailSelectedData').on('submit',(e)=>{
// e.preventDefault();
console.log($('#emailSelectedData'));
});
$('.createNewCampaignbtn').on('click',()=>{
$('#dynamicLoader').addClass('loader');
setTimeout(() => {
$('.createNewCampaignbtn').addClass('d-none');
$('#dynamicLoader').removeClass('loader');
$('.existingCampaignListing').addClass('d-none').hide('slow');
$('.first_outerDiv').removeClass('d-none');
}, 2000);
})
});
</script>
</body>
</html>
<?php
if(isset($_POST['finalsubmition'])){
extract($_POST);
$headerOfFIle ; //headers of file
$postData = explode(',',$headerOfFIle); // post related data
$postDataKeys = array_keys($postData); // key of post related data
$tableData ; // data of file in string
$fileData = explode('$#&',$tableData);
// echo count($fileData);
// var_dump($tableData);
$status = [];
echo "<script>$('#dynamicLoader').addClass('loader');</script>";
// //main operations
foreach($fileData as $k=>$v){
$completeRow = $v;
$uniqId = uniqid();
$completeRow_encode = base64_encode($completeRow);
$rowArr = explode('^&$',$completeRow);
// echo '<br>';
// echo 'designation = '.$DesignationIndex;
$email = mysqli_real_escape_string($conn , $rowArr[$emailIndex]);
$name = mysqli_real_escape_string($conn , $rowArr[$nameIndex]);
$Designation = mysqli_real_escape_string($conn , $rowArr[$DesignationIndex]);
$phone = mysqli_real_escape_string($conn , $rowArr[$phoneIndex]);
$name = str_replace('"', '', $name);
$phone = str_replace('"', '',$phone);
// $phone= (int) $phone;
// echo $k.' '.$name.'<br>';
// $email = trim($email,"'");
// $name = trim($name,"'");
// $query = "INSERT INTO `campaign_info_data`(`campaign_id`,`email`,`uuid`,`row_encode`,`name`,`company`,`phone`) VALUES('$campaign_id' ,'$email','$uniqId','$completeRow_encode','$name','$Designation','$phone')";
// echo '<p style="color:black;">'.$email.' '.$name.' '.$Designation.' '.$phone.'</p>';
// echo '<p style="color:black;">'. gettype ( str_replace('"', '',$phone)).'</p>';
// die;
// $query = "INSERT INTO `campaign_info_data`(`campaign_id`,`email`,`uuid`,`row_encode`,`name`,`company`,`phone`) VALUES('$campaign_id' ,'$email','$uniqId','$completeRow_encode','$name','$Designation','$phone')";
// echo '<p style="color:black;">'.$query.'</p>';
// // die;
$insert = mysqli_query($conn , "INSERT INTO `campaign_info_data`(`campaign_id`,`email`,`uuid`,`row_encode`,`name`,`company`,`phone`) VALUES('$campaign_id' ,'$email','$uniqId','$completeRow_encode','$name','$Designation','$phone')");
if($insert){
array_push($status , true);
}else{
array_push($status , false);
// echo "error = ".mysqli_error($conn);
echo '<p style="color:black;">'.mysqli_error($conn).'</p>';
continue;
}
}
// print_r($status);
if(in_array(false , $status)){
echo "<script>alert('insertion failed at some point!');</script>";
}else{
echo "<script>location.href = 'campaign_info.php';</script>";
}
}
?>
</quote>
Comments
Post a Comment