gpt4 book ai didi

php - 导入 CSV 时跳过标题或第一行

转载 作者:行者123 更新时间:2023-11-28 23:16:37 24 4
gpt4 key购买 nike

我知道这是重复的问题。但是我已经尝试了在 https://stackoverflow.com/ 上找到的所有答案。 .

我想在我的例子中,如果相同的日期匹配,我将插入和更新数据,否则记录将更新,否则将插入。

下面是我的文件代码:

<?php 
if ( isset( $_POST['submit'] ) && $_POST['upload-csv'] == 'upload' ) {
$error = array();
$success = array();
$filename = $_FILES['file']['name'];
$filetype = wp_check_filetype( $filename );

if ( $filetype['ext'] == 'csv' && $filetype['type'] == 'text/csv' ) {

$handle = fopen( $_FILES['file']['tmp_name'], "r" );
$row = 0;
$skip_row_number = array("1");
while ( ($data = fgetcsv( $handle, 1000, "," )) !== FALSE ) {
$data = array_map("utf8_encode", $data);

if ($row > 0)
{

$table_name = $wpdb->prefix . 'prayer';
$ipquery = $wpdb->get_results("SELECT * FROM `$table_name` WHERE `date` = '".$data[0]."'");
$query_res = $wpdb->num_rows;
// Check if same date data
if($query_res >=1){
$updateQuery = "UPDATE `$table_name` SET
`date` = '".$data[0]."',
`first_start` = '".$data[1]."',
`first_end` = '".$data[2]."',
`second_start` = '".$data[3]."',
`second_end` = '".$data[4]."',
`third_start` = '".$data[5]."',
`third_end` = '".$data[6]."',
`forth_start` = '".$data[7]."',
`forth_end` = '".$data[8]."',
`five_start` = '".$data[9]."',
`five_end` = '".$data[10]."',
`done` = '".$data[10]."'
WHERE `$table_name`.`date` = '".$data[0]."';";
$up_res = $wpdb->query($updateQuery);
}else{
$query = "INSERT INTO $table_name (date, first_start, first_end, second_start,
second_end, third_start, third_end, forth_start, forth_end, five_start, five_end, done)
VALUES ('".$data[0]."','".$data[1]."','".$data[2]."','".$data[3]."','".$data[4]."','".$data[5]."','".$data[6]."','".$data[7]."','".$data[8]."','".$data[9]."','".$data[10]."','".$data[11]."')";
$insert_res = $wpdb->query($query);
}

}

$row++;
}
fclose( $handle );
$success[] = 'Import done.';
} else {
$error[] = 'Please upload CSV file only';
}
}
?>

我已经尝试了以下跳过标题的答案:

Skip the first line of a CSV file

Import CSV, exclude first row

skip first line of fgetcsv method in php

帮我解决这个问题。

最佳答案

ParseCSV 是从 CSV 获取数据的最新且简单的方法,您可以轻松地控制来自 CSV 的数据。

在其中你必须按照正确的路径添加库文件

e.g. require_once 'parsecsv.lib.php';

然后它分别返回标题和数据。

$filename = 'abc.csv';  // path of CSV file or after upload pass temp path of file
$csv = new parseCSV();
$csv->auto($filename);

foreach ($csv->titles as $value):
$getcsvtitle[] = // get header in variable
endforeach;

foreach ($csv->data as $key => $row):
//$getdataasperrow = // get data row wise.
endforeach;

ParseCSV在添加库后返回数组格式的数据,这样你就可以轻松地分离标题和其他数据,并且兼容换行和特殊字符,我也一直在使用它.

请参阅下面的链接以获取更多详细信息。

ParseCSV GitHub

关于php - 导入 CSV 时跳过标题或第一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43588731/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com