用单输入将2个文件csv上传到mysql表中?这是可能的?

时间:2016-05-27 07:44:24

标签: php mysql csv

我试图用单个输入上传2个csv文件,尝试简单的复制粘贴,并将其更改为不同的变量仍然不起作用,任何一个例子?

代码我试图在句柄和handle1上复制粘贴,只需单击即可,但无效。

<html>
<head>
<title>Upload page</title>
</head>
<body>
<?php
//KONEKSI.. 
$con=mysqli_connect("localhost","root","","");
// Check connection
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

// select database 
mysqli_select_db($con,"rekonsil");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
}

if (isset($_POST['submit'])) {//Script akan berjalan jika di tekan tombol submit..
    $delete="delete from tb_po"; //hapus data sebelum di input kembali
    mysqli_query($con,$delete) or die (mysql_error);
//Script Upload File..
    if (is_uploaded_file($_FILES['filename']['tmp_name'])) {
        echo "<h1>" . "File ". $_FILES['filename']['name'] ." Berhasil di Upload" . "</h1>";
        echo "<h2>Menampilkan Hasil Upload:</h2>";
        //readfile($_FILES['filename']['tmp_name']); menampilkan hasil upload 
    }

    //Import uploaded file to Database, Letakan dibawah sini..
    $handle = fopen($_FILES['filename']['tmp_name'], "r"); //Membuka file dan membacanya
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
        $import="insert into tb_po (PONumber, CustomerNo, PODate, CustomerName, Material, Description, POQty, GRQty, DeliveryDate, GRDate, poreleasedate, OutstandingPO, OutboundInbound) 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]','$data[12]')"; //data array sesuaikan dengan jumlah kolom pada CSV anda mulai dari “0” bukan “1”
        mysqli_query($con,$import) or die(mysql_error()); //Melakukan Import
    }

    $handle1 = fopen($_FILES['filename1']['tmp_name1'], "r"); //Membuka file dan membacanya
    while (($data = fgetcsv($handle1, 1000, ",")) !== FALSE) {
        $import="insert into tb_rls (PONumber, SPBNO, SONumber, DONumber, ShiptoParty, Description, DeliveryQty, ContainerID, ActualGIDate, SPSOTK, Customer, keterangan) values('$data[0]','$data[1]','$data[2]','$data[3]','$data[4]','$data[5]','$data[6]','$data[7]','$data[8]','$data[9]')"; //data array sesuaikan dengan jumlah kolom pada CSV anda mulai dari “0” bukan “1”
        mysqli_query($con,$import) or die(mysql_error()); //Melakukan Import
    }

    fclose($handle, $handle1); //Menutup CSV file
    echo "<br><strong>Import data selesai.</strong>";

}else { //Jika belum menekan tombol submit, form dibawah akan muncul.. ?>

<!-- Form Untuk Upload File CSV-->
   Silahkan masukan file PO.csv yang ingin diupload<br /> 
   <form enctype='multipart/form-data' action='' method='post'>
    Cari CSV File anda:<br />
    <input type='file' name='filename' size='100'>
   </form>

   Silahkan masukan file SPB.csv yang ingin diupload<br /> 
   <form enctype='multipart/form-data' action='' method='post'>
    Cari CSV File anda:<br />
    <input type='file' name='filename1' size='100'>
   <input type='submit' name='submit' value='Upload'></form>

<?php } mysqli_close($con); //Menutup koneksi SQL?>
</body>




2 个答案:

答案 0 :(得分:1)

您在$ handle1上使用 tmp_name1 将其更改为$ _FILES ['filename1'] ['tmp_name']

答案 1 :(得分:1)

文件数组中的

tmp_name始终相同,不依赖于文件输入类型的名称。

只需替换以下行:     $ handle1 = fopen($ _ FILES ['filename1'] ['tmp_name'],“r”);