在加载CSV-PHP时禁用第一行

  • 本文关键字:一行 加载 CSV-PHP php
  • 更新时间 :
  • 英文 :


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

CSV中的加载工作得很好,而且我在这个加载中还实现了对给定产品的检查,这样,如果他们必须加载一个已经在数据库中注册了代码的产品,就可以省去一个警告,警告用户这一事实。

我的问题曾经解释过程序是:当用户下载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>';
}
}
}
?>

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

$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,那么它是第一行,您需要使用"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
}
}
?>

最新更新