sourcetip

PHP에서 mysql 데이터베이스로 Excel 파일을 가져오는 방법

fileupload 2023. 6. 22. 22:09
반응형

PHP에서 mysql 데이터베이스로 Excel 파일을 가져오는 방법

예를 들어, PHP에서 mysql로 엑셀 파일을 가져오거나 업로드하고 싶습니다.

제 HTML은 아래와 같습니다.

<form enctype="multipart/form-data" method="post" role="form">
    <div class="form-group">
        <label for="exampleInputFile">File Upload</label>
        <input type="file" name="file" id="file" size="150">
        <p class="help-block">Only Excel/CSV File Import.</p>
    </div>
    <button type="submit" class="btn btn-default" name="Import" value="Import">Upload</button>
</form>

PHP 코드는 아래와 같습니다.

<?php 
if(isset($_POST["Import"]))
{
    //First we need to make a connection with the database
    $host='localhost'; // Host Name.
    $db_user= 'root'; //User Name
    $db_password= '';
    $db= 'product_record'; // Database Name.
    $conn=mysql_connect($host,$db_user,$db_password) or die (mysql_error());
    mysql_select_db($db) or die (mysql_error());
    echo $filename=$_FILES["file"]["tmp_name"];
    if($_FILES["file"]["size"] > 0)
    {
        $file = fopen($filename, "r");
        //$sql_data = "SELECT * FROM prod_list_1 ";
        while (($emapData = fgetcsv($file, 10000, ",")) !== FALSE)
        {
            //print_r($emapData);
            //exit();
            $sql = "INSERT into prod_list_1(p_bench,p_name,p_price,p_reason) values ('$emapData[0]','$emapData[1]','$emapData[2]','$emapData[3]')";
            mysql_query($sql);
        }
        fclose($file);
        echo 'CSV File has been successfully Imported';
        header('Location: index.php');
    }
    else
        echo 'Invalid File:Please Upload CSV File';
}
?>

엑셀 파일은 아래와 같습니다.

excel file picture

두 번째 행 값만 테이블로 가져오려고 합니다.제가 어떻게 해결할 수 있는지 또는 어떤 자원을 줄 수 있는지 도와주세요.엑셀 파일을 업로드 할 수 있었지만 포맷이 정확하지 않습니다.mysql의 4열에 있는 4열을 업로드하고 싶은데 mysql의 1열에 있는 4열을 모두 업로드하고 있습니다. 뭔가 누락된 것이 있나요?

>= 두 번째 행 값의 경우 표에 -을 삽입합니다.

$file = fopen($filename, "r");
//$sql_data = "SELECT * FROM prod_list_1 ";

$count = 0;                                         // add this line
while (($emapData = fgetcsv($file, 10000, ",")) !== FALSE)
{
    //print_r($emapData);
    //exit();
    $count++;                                      // add this line

    if($count>1){                                  // add this line
      $sql = "INSERT into prod_list_1(p_bench,p_name,p_price,p_reason) values ('$emapData[0]','$emapData[1]','$emapData[2]','$emapData[3]')";
      mysql_query($sql);
    }                                              // add this line
}

현재 보유하고 있는 CSV 파일 종류에 문제가 있을 수 있습니다.

텍스트 편집기를 사용하여 CSV 파일을 열고 모든 분리가 세미콜론이 아닌 쉼표로 수행되었는지 확인한 후 스크립트를 다시 시도합니다.잘 될 겁니다.

언급URL : https://stackoverflow.com/questions/21965255/how-to-import-excel-file-into-mysql-database-from-php

반응형