Envoi du code, que l'on puisse jeter un coup d’œil sur ton problème ?
Merci Tintin75,
Ci-dessous, le code pour l'insertion de données dans les tables, j'utilise le même script pour toutes les tables de la base. Je modifie juste le nom et les variables et ça marche, mais une fois les clés étrangères sont insérées dans les tables, le script ne marchera plus sur les tables qui reçoivent les clés.
Par ailleurs, j'ai une autre variable appélée" premium boolean('true',false') dans table "personnel" dans ma base de donnée"disu", je ne sais pas comment je peux l'intégrer dans mon script lors de l'insertion et qu'il renvoie "true" si le personnel est "premium" false sinon.
Un autre problème,lors de l'insertion des données, le script insère aussi l'entête des colonnes du fichier CSV, ces ces entetes sont pareils que les noms des attributs de la table(je ne veux pas les dupliquer).
Alors, je veux inserer les données sans tenir compte de la première ligne qui correspond(les entêtes du fichier CSV).
NB: le php et html sont tous dans un même fichier appelé"CsvPeronInfos.php"
Désolé, je suis un débutant, le code n'est pas beau du tout, pour le moment je cherche ce qui fonctionne. Après l'amélioration viendra au fil du temps.
Merci
--------------------------------------------------------------------------------
<?php
$conn = mysqli_connect("localhost", "root", "root", "disu");
if (isset($_POST["import"])) {
$fileName = $_FILES["file"]["tmp_name"];
if ($_FILES["file"]["size"] > 0) {
$file = fopen($fileName, "a+");
while (($data = fgetcsv($file, 1000, ",")) !== FALSE)
{
$i = 0;
foreach($data as $i => $valeur){
echo $i[0].$i[1].'<br />';
$values=explode(';', $valeur,9);
$nom=$values[0];
$prenom=$values[1];
$mail=$values[2];
$entite=$values[3];
$cuid=$values[4];
$tel_fixe=$values[5];
$tel_mobile=$values[6];
$cuid_md=$values[7];
$mail_md=$values[8];
$sqlInsert = "INSERT into personnel(nom,prenom,mail,entite,cuid,tel_fixe,tel_mobile,cuid_md,mail_md)
values ('" . $nom . "','" . $prenom. "','" .$mail . "','" . $entite . "','" . $cuid. "','" . $tel_fixe . "','" . $tel_mobile . "','" . $cuid_md . "','" . $mail_md . "')";
$result = mysqli_query($conn, $sqlInsert);
if (!empty($result)) {
$type = "success";
$message = "Les données CSV sont intégrées à la base avec succès!";
} else {
$type = "error";
$message = "Problem in Importing CSV Data";
}
}
}
fclose($file);
var_dump($file);
}
}
?>
--------------------------------------------------------------------------------------------------------
<!DOCTYPE html>
<html>
<head>
<!-- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -->
<script src="jquery-3.2.1.min.js"></script>
<style>
body {
font-family: Arial;
width: 550px;
}
.outer-scontainer {
background: #F0F0F0;
border: #e0dfdf 1px solid;
padding: 20px;
border-radius: 2px;
}
.input-row {
margin-top: 0px;
margin-bottom: 20px;
}
.btn-submit {
background: #333;
border: #1d1d1d 1px solid;
color: #f0f0f0;
font-size: 0.9em;
width: 100px;
border-radius: 2px;
cursor: pointer;
}
.outer-scontainer table {
border-collapse: collapse;
width: 100%;
}
.outer-scontainer th {
border: 1px solid #dddddd;
padding: 8px;
text-align: left;
}
.outer-scontainer td {
border: 1px solid #dddddd;
padding: 8px;
text-align: left;
}
#response {
padding: 10px;
margin-bottom: 10px;
border-radius: 2px;
display:none;
}
.success {
background: #c7efd9;
border: #bbe2cd 1px solid;
}
.error {
background: #fbcfcf;
border: #f3c6c7 1px solid;
}
div#response.display-block {
display: block;
}
</style>
<script type="text/javascript">
$(document).ready(function() {
$("#frmCSVImport").on("submit", function () {
$("#response").attr("class", "");
$("#response").html("");
var fileType = ".csv";
var regex = new RegExp("([a-zA-Z0-9\s_\\.\-:])+(" + fileType + ")$");
if (!regex.test($("#file").val().toLowerCase())) {
$("#response").addClass("error");
$("#response").addClass("display-block");
$("#response").html("Invalid File. Upload : <b>" + fileType + "</b> Files.");
return false;
}
return true;
});
});
</script>
</head>
<body>
<h2>Importer un fichier CSV à ma base</h2>
<div id="response" class="<?php if(!empty($type)) { echo $type . " display-block"; } ?>"><?php if(!empty($message)) { echo $message; } ?></div>
<div class="outer-scontainer">
<div class="row">
<form class="form-horizontal" action="" method="post"
name="frmCSVImport" id="frmCSVImport" enctype="multipart/form-data">
<div class="input-row">
<label class="col-md-4 control-label">Selectionner le CSV
</label> <input type="file" name="file"
id="file" accept=".csv">
<button type="submit" id="submit" name="import"
class="btn-submit">Import</button>
<br />
</div>
</form>
</div>
<?php
/* where mail LIKE '%@orange%'*/
$sqlSelect = "SELECT * FROM personnel";
$result = mysqli_query($conn, $sqlSelect);
if (mysqli_num_rows($result) > 0) {
?>
<table id='TablePersonnel'>
<thead>
<tr>
<th>nom</th>
<th>prenom</th>
<th>mail</th>
<th>entite</th>
<th>cuid</th>
<th>tel_fixe</th>
<th>tel_mobile</th>
<th>cuid_md</th>
<th>mail_md</th>
</tr>
</thead>
<?php
while ($row = mysqli_fetch_array($result)) {
?>
<tbody>
<tr>
<td><?php echo $row['nom']; ?></td>
<td><?php echo $row['prenom']; ?></td>
<td><?php echo $row['mail']; ?></td>
<td><?php echo $row['entite']; ?></td>
<td><?php echo $row['cuid']; ?></td>
<td><?php echo $row['tel_fixe']; ?></td>
<td><?php echo $row['tel_mobile']; ?></td>
<td><?php echo $row['cuid_md']; ?></td>
<td><?php echo $row['mail_md']; ?></td>
</tr>
<?php
}
?>
</tbody>
</table>
<?php } ?>
</div>
</body>
</html>
----------------------------
Modifié par nkm (16 Jul 2018 - 18:07)