Disons, je veux importer/télécharger un fichier Excel vers mysql depuis PHP
Mon HTML est comme ci-dessous
<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>
Le code PHP est comme ci-dessous
<?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';
}
?>
Le fichier Excel est comme ci-dessous
Je souhaite importer uniquement les valeurs de la 2e ligne dans ma table. S'il vous plaît, aidez-moi comment puis-je le résoudre ou donnez-moi des ressources. J'ai pu télécharger le fichier Excel mais il n'est pas correctement formaté. Je veux télécharger 4 colonnes dans la colonne 4 de mysql mais il télécharge les 4 colonnes dans la colonne 1 de mysql. est-ce que je manque quelque chose?
Pour> = valeurs de 2e ligne insérées dans le tableau-
$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
}
Vous avez probablement un problème avec le type de fichier CSV que vous avez.
Ouvrez le fichier CSV avec un éditeur de texte, vérifiez que toutes les séparations sont effectuées avec la virgule et non le point-virgule et essayez à nouveau le script. Cela devrait bien fonctionner.