加载CSV时禁用第一行-PHP

时间:2018-12-04 14:36:27

标签: php

作为我在项目中实现的标题,用户可以在其中下载CSV模型,并通过预先设置的字段以多种方式上载产品,从而使工作更快。

以CSV进行的加载非常完美,此外,我在此加载中还实施了对给定产品的检查,以防万一他们不得不使用已在db中注册的代码加载产品,而无需发出警告,警告用户事实。

我的问题曾经解释过该过程是:用户下载CSV文档时,其格式如下: -名字 -码 等等...

第一行如何从代码中忽略它,并从第二行开始记录所有产品?

代码:

<?php
$ESITO_POSITIVO = "";
$ESITO_NEGATIVO = "";

if(isset($_POST["submit"]))
{
include '../../connessione.php';

if(!$connessione){
die('Could not Connect My Sql:' .mysqli_error());
}
$file = $_FILES['file']['tmp_name'];
$handle = fopen($file, "r");
$c = 0;
while(($filesop = fgetcsv($handle, 1000, ",")) !== false)
{
$category_id = $_POST['category_id'];
$concessionaria = $filesop[0];
$proprietaria = $filesop[1];
$cimasa = $filesop[2];
$address = $filesop[3];
$city = $filesop[4];
$cap = $filesop[5];
$lat = $filesop[6];
$lng = $filesop[7];
$inpe = $filesop[8];
$tipo_impianto = $filesop[9];
$tipologia = $filesop[10];
$illuminato = $filesop[11];
$numero_facce = $filesop[12];
$quartiere = $filesop[13];
$comune = $filesop[14];
$ubicazione = $filesop[15];
$circuito = $filesop[16];
$costo_quattordici = $filesop[17];
$costo_mese = $filesop[18];

$CONTROLLA = mysqli_query($connessione,"SELECT cimasa FROM store_locator WHERE cimasa='".$cimasa."'");
$SE_IL_RISULTATO_IMMESSO=mysqli_num_rows($CONTROLLA);

if($SE_IL_RISULTATO_IMMESSO==0)  {
$connessione->query("insert into store_locator(category_id,concessionaria,proprietaria,cimasa,address,city,cap,lat,lng,inpe,tipo_impianto,tipologia,illuminato,numero_facce,quartiere,comune,ubicazione,circuito,costo_quattordici,costo_mese) values ('$category_id','$concessionaria','$proprietaria','$cimasa','$address','$city','$cap','$lat','$lng','$inpe','$tipo_impianto','$tipologia','$illuminato','$numero_facce','$quartiere','$comune','$ubicazione','$circuito','$costo_quattordici','$costo_mese')");
$stmt = mysqli_prepare($connessione);
mysqli_stmt_execute($stmt);
$c = $c + 1;
$ESITO_POSITIVO = '<div class="alert alert-success" role="alert">
  <strong>Impianto registrato con successo!</strong><br>
  <a href="../../gestisci/impianti/impianti.php" type="button" class="btn btn-success">Gestisci i tuoi Impianti</a>

</div>';
}
else
{ 
$ESITO_NEGATIVO = '<div class="alert alert-danger" role="alert">
  <strong>Attenzione! all&rsquo;interno del file che è stato caricato è presente un numero di Cimasa già registrato, si prega di controllare e ricaricare il file!</strong>
</div>';
}
}
}
?>

2 个答案:

答案 0 :(得分:1)

如果我知道有标题行并且我不想要或不需要它,我通常只检索要扔掉/忽略的行。

$file = $_FILES['file']['tmp_name'];
$handle = fopen($file, "r");
$trash = fgetcsv($handle, 1000, ",");  // retrieve the header line and ignore it
$c = 0;
while(($filesop = fgetcsv($handle, 1000, ",")) !== false)

答案 1 :(得分:0)

您需要创建一个计数器才能在循环中递增。如果计数器为1,则它是第一行,您需要使用“ continue”使它跳过循环的该迭代。您需要先递增然后再继续,否则它将永不递增:

<?php
$ESITO_POSITIVO = "";
$ESITO_NEGATIVO = "";

if(isset($_POST["submit"]))
{
    include '../../connessione.php';

    if(!$connessione){
        die('Could not Connect My Sql:' .mysqli_error());
    }
    $file = $_FILES['file']['tmp_name'];
    $handle = fopen($file, "r");
    $c = 0;
    $i = 0;
    while(($filesop = fgetcsv($handle, 1000, ",")) !== false)
    {
        $i++;
        if($i === 1) continue;

        // Rest of code here

    }
}
?>