Import fichier CSV to PhpMyadmin
Résolu
garrix_du77
Messages postés
52
Date d'inscription
Statut
Membre
Dernière intervention
-
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
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 :
et voici le code php :
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>
A voir également:
- Nombre de colonnes invalides dans les données csv à la ligne 1.
- Partage de photos en ligne - Guide
- Aller à la ligne excel - Guide
- Comment faire deux colonnes indépendantes dans word - Guide
- Supprimer les données de navigation - Guide
- Classer par ordre alphabétique excel plusieurs colonnes - Guide
2 réponses
Bonjour,
Je t'invite déjà à utiliser correctement mysqli.
par exemple :
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);
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........