Import fichier CSV to PhpMyadmin

Résolu/Fermé
garrix_du77 Messages postés 52 Date d'inscription samedi 21 mai 2016 Statut Membre Dernière intervention 4 janvier 2024 - Modifié le 10 août 2018 à 12:37
jordane45 Messages postés 38187 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 26 mai 2024 - 14 août 2018 à 11:29
bonjour je viens d'essayer plusieurs essaie sur l'importation de mon fichier "CSV" dans ma Base PHPMYADMIN mais rien ne s'affiche sur la Base

je vous passe le code html :
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<form enctype="multipart/form-data" method="post" action="import.php">
<table border="1">
<tr >
<td colspan="2" align="center"><strong>Import CSV file</strong></td>
</tr>
<tr>
<td align="center">CSV File:</td><td><input type="file" name="file" id="file"></td></tr>
<tr >
<td colspan="2" align="center"><input type="submit" value="submit"></td>
</tr>
</table>
</form>
</body>
</html>

et voici le code php :
<?php
extract(filter_input_array(INPUT_POST));
$fichier = $_FILES ["userfile"]["name"];
if ($fichier){ // ouverture du ficier temporaire
$fp = fopen($_FILES["userfile"]["tmp_name"], "r");
}
else {// fichier inconnu ?>
<p align="center" >- importation echouee -</p>
<p align="center" >- <B> désole mais vous n'avez pas spécifié de chemin valide .. </B> </p>
<?php exit ();}
// declaration de la variable "cpt" qui permettera de compter le nombre de d'enregistrement réalisé
$cpt = 0; ?>
<p align="center">- Importation réussie -</p>
<?php //importation
while (!feof($fp)) {
$ligne = fgets ($fp,4096);
// on crée un tableau des élements séparés par des points virgules
$liste = explode(";", $ligne);
$table = filter_input(INPUT_POST, 'userfile');
// premier élement
$liste[0] = (isset($liste[0]) ) ? $liste[0] : null;
$liste[1] = (isset($liste[1]) ) ? $liste[1] : null;

$liste[2] = (isset($liste[2]) ) ? $liste[2] : null;

$liste[3] = (isset($liste[3]) ) ? $liste[3] : null;
$champ1=$liste[0];
$champ2=$liste[1];
$champ3=$liste[2];
$champ4=$liste[3];
if ($champ1!='')
{
$cpt++;
$db = new mysqli('localhost','root','','projet');
mysql_select_db("projet",$db);
$sql =("INSERT INTO avancement (id , type , pourcentage ,commentaire, date) VALUES ('','$champ1','$champ2','$champ3','$champ4')");
$result = $db-> query($sql);

} }
// fermeture du fichier
fclose ($fp);
?>
<h2> nombre de valeurs nouvellement enregistrees : </h2> <b> <?php echo $cpt; ?> </b>

2 réponses

jordane45 Messages postés 38187 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 26 mai 2024 4 671
10 août 2018 à 14:04
Bonjour,

Je t'invite déjà à utiliser correctement mysqli.

par exemple :
//connexion à la bdd
$mysqli = new mysqli("localhost", "root", "", "projet");

/* Vérification de la connexion */
if ($mysqli->connect_errno) {
    printf("Echec de la connexion: %s\n", $mysqli->connect_error);
    exit();
}


// Puis dans ta boucle qui parcours le fichier
while (!feof($fp)) {

   // le reste de ton code...

   $sql =("INSERT INTO avancement (id , type , pourcentage ,commentaire, date) VALUES 
        ('','$champ1','$champ2','$champ3','$champ4')");
   if (!$mysqli->query($sql)) {
      printf("Message d'erreur : %s\n", $mysqli->error);
  }

   // le reste de ton code...

} //fin de la boucle

// fermeture du fichier 
fclose ($fp);



0
garrix_du77 Messages postés 52 Date d'inscription samedi 21 mai 2016 Statut Membre Dernière intervention 4 janvier 2024 2
10 août 2018 à 14:06
Oui mais là tu m'a pas donner une solution excusez-moi
0
jordane45 Messages postés 38187 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 26 mai 2024 4 671
10 août 2018 à 14:12
ça va te permettre de voir si déjà ton souci se situe au niveau de la connexion ou au niveau de la requête d'insertion.
Sans compter que je t'ai corrigé des erreurs dans ton code ( mélange de mysql_ et de mysqli_ ...)
Et puis... mettre la connexion qu'au début de ton code. Nul besoin de la refaire à chaque ligne de ton fichier !!!!

Pour la suite, reviens nous voir si tu obtiens, grace à ce code, d'éventuels messages d'erreurs.... sans ça il nous sera difficile de trouver ton erreur.
Surtout qu'on a ni accès à ton fichier csv... ni à la structure de ta bdd........
0