Как импортировать файл Excel в базу данных mysql с PHP
Допустим, я хочу импортировать/загрузить файл excel в mysql с PHP
Мой 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 выглядит так, как показано ниже
Я хочу импортировать в свою таблицу только значения 2-й строки. Пожалуйста, помогите мне, как я могу это решить, или дайте мне какой-либо ресурс. Мне удалось загрузить файл excel, но он неправильно отформатирован. я хочу загрузить 4 столбца в 4 столбца mysql, но он загружает все 4 столбца в 1 столбец mysql. я что-то упускаю?
2 answers
Для >=значения 2-й строки вставить в таблицу -
$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-файл с помощью текстового редактора, убедитесь, что все разделения выполнены с помощью coma teken (,), а не точки с запятой, и повторите попытку выполнения сценария. Это должно работать нормально.