création table et import csv en PHP
Bonjour,
je commence le PHP pour travailler sur ma base MYSQL. je souhaite intégrer un fichier CSV avec PHP et injecté les données dans la table qui porte le nom du fichier.
pour insérer des données j'ai trouvé un bout de code dans mon fichier index voir ci dessous
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| <h3>Lire l'article sur : <a href="https://waytolearnx.com/2019/07/comment-importer-un-fichier-csv-dans-mysql-avec-php.html" target="_blank">Comment importer un fichier CSV dans MySQL avec PHP</a></h3>
<form enctype="multipart/form-data" action="import_csv.php" method="post">
<div class="input-row">
<label class="col-md-4 control-label">Choisir un fichier CSV</label>
<input type="file" name="file" id="file" accept=".csv">
<br />
<br />
<button type="submit" id="submit" name="import" class="btn-submit">Import</button>
<br />
</div>
</form> |
le fichier import csv
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| <?php
// Connect to database
include("db_connect.php");
!$conn->query("CREATE TABLE produit (id int(11) not null auto_increment primary key, name varchar(200) not null, description text not null, price int(100) not null")
if (isset($_POST["import"])) {
$fileName = $_FILES["file"]["tmp_name"];
if ($_FILES["file"]["size"] > 0) {
// Connect to database
$file = fopen($fileName, "r");
while (($column = fgetcsv($file, 10000, ",")) !== FALSE) {
// include("creation_table.php");
$sql = "INSERT into produit (id,name,description,price)
values ('" . $column[0] . "','" . $column[1] . "','" . $column[2] . "','" . $column[3] . "')";
$result = mysqli_query($conn, $sql);
if (! empty($result)) {
$type = "success";
$message = "Les Données sont importées dans la base de données";
} else {
$type = "error";
$message = "Problème lors de l'importation de données CSV";
}
}
}
}
//Retourner à la page index.php
//header('Location: index.php');
//exit;
?> |
et le code de connexion a la base
Code:
1 2 3 4 5 6 7
| <?php
$server = "localhost";
$username = "root";
$password = "root";
$db = "test";
$conn = mysqli_connect($server, $username, $password, $db);
?> |
j'arrive pas à intégrer le code de création de la table que j'ai intégrer dans le fichier import csv. j'ai une erreur "Parse error: syntax error, unexpected 'if' (T_IF) in C:\wamp64\www\projet\import_csv.php on line 10" à if (isset($_POST["import"])) {. je pense que c'est a cause de la table qui n'existe pas
Code:
!$conn->query("CREATE TABLE produit (id int(11) not null auto_increment primary key, name varchar(200) not null, description text not null, price int(100) not null")
je voudrais aussi récupérer le du fichier "produit" via le $filename et l'intégrer dans le code de création de table CREATE TABLE $filename (id int(11)...)
cela fait deux jours que je suis sur le net a essayé des bouts de codes mais je n'y arrive pas. le fichier csv correspond à
1,PEN,Pen Blue,1.23
2,PC,Apple products,300.99
3,Car,Mercedes benz,985470.47
pouvez vous m'aider ?
merci d'avance