根据php中特定列的值删除CSV行

时间:2019-06-12 02:28:01

标签: php mongodb csv

我在代码中有一个部分,要求我上载CSV文件并删除响应列下所有没有yes的行,然后将具有yes的行上载到PHP中的mongo DB,每个CSV文件必须在数据库中创建一个单独的文档。任何想法如何做到这一点? Sample CSV file

1 个答案:

答案 0 :(得分:1)

HTML代码

<input type="file" id="csv_sheet" name="csv_sheet"> <button id="bt_upload">Upload</button>

使用此脚本从CSV文件中删除响应列下没有“是”的所有行。

<script src="http://d3js.org/d3.v3.min.js" charset="utf-8"></script>
<script type="text/javascript">
$(document).ready(function(){
  $('#csv_sheet').change(function(){

        var fileName = $(this).val();
        var path = URL.createObjectURL(event.target.files[0]);

        d3.csv(path, function(data) {

            jsonData = data;
            filter_data(data);
        }
   });
});

function filter_data(data){

  var filltered_data = {};

    $.each( data, function( key, value ) {
     if(value.response != 'yes'){
        filltered_data.push(key);
     }
    });

      $.ajax({
              type:'POST',
              url:'url',
              data:JSON.stringify(filltered_data),
              dataType:'json', 

            })
            .done(function( json ) { 

            alert("successfully uploaded");


            })
            .fail(function( xhr, status, errorThrown ) {

                alert( "Sorry, there was a problem!" );
                console.log( "Error: " + errorThrown );
                console.log( "Status: " + status );
                console.dir( xhr );
            });

} // end of filter_data function
</script>

PHP代码:

$input = urldecode(file_get_contents('php://input'));
$insertOneResult = $db->inventory-> insertMany([$input
]);