//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);
ç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........
Si ça t'affiche toujours le même message... c'est que tu n'as pas renommé correctement ou pas partout.......
Montre nous ton code modifié et indique nous de nouveau le message d'erreur rencontré et la ligne concernée.
le message d'erreur c'est un message de : Warning: move_uploaded_file() errors
erreur : Warning: move_uploaded_file(../uploads/uploaddir): failed to open stream: No such file or directory in C:\EasyPHP-Devserver-17\eds-www\import.php on line 12
Warning: move_uploaded_file(): Unable to move 'C:\Users\g551251\AppData\Local\Temp\php70A8.tmp' to '../uploads/uploaddir' in C:\EasyPHP-Devserver-17\eds-www\import.php on line 12
Line 12 : if(move_uploaded_file($temp_name, $location.$name)){
Bon ben... visiblement... tu n'as pas envie d'appliquer les conseils que je te donne....
(sans parler du fait que tu ne postes pas ton code correctement et que j'ai été obligé d'éditer ton message encore une fois...)
Bref... moi je laisse tomber.....
Reviens nous voir quand tu seras décidé à lire et comprendre exactement ce qu'on te dit !
chao
mon ami j'ai testé tous ce que tu m'a dit et si j'ai fais du changement c'est parce que tu as pas pu comprendre l'erreur et me aider merci a toi aussi et quand t'aura des solutions propose les ...
pas besoin de demander a chaque fois mon message était très clair et je t'ai posté mes deux codeS
<?php
//affichage des erreurs PHP
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
//connexion à la bdd
$mysqli = mysqli_connect("localhost", "root", "", "csv_db");
// Vérification de la connexion
if ($mysqli->connect_errno) {
printf("Echec de la connexion: %s\n", $mysqli->connect_error);
exit();
}
// bien entendu... le fichier dont tu auras fais un move_upload_file avant...
$csvFilePath = "Chemin_vers_ton_fichier.csv";
if(!file_exists($csvFilePath)){
$result['error'] = "Le Fichier ". $csvFilePath . " n'existe pas ou est introuvable ";
}
$output = '';
$allowed_ext = array("csv");
$extension = end(explode(".", $csvFilePath));
if(in_array($extension, $allowed_ext))[
if (($handle = fopen($csvFilePath, "r")) !== FALSE) {
$row = 0;
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$row++; //ligne parcourue
$nbCol = count($data); // nombre de données trouvées dans la ligne "row"
if($nbCol >=5 ){
$name = mysqli_real_escape_string($connect, $row[0]);
$address = mysqli_real_escape_string($connect, $row[1]);
$gender = mysqli_real_escape_string($connect, $row[2]);
$designation = mysqli_real_escape_string($connect, $row[3]);
$age = mysqli_real_escape_string($connect, $row[4]);
$sql = "INSERT INTO tbl_employee
(name, address, gender, designation, age)
VALUES ('$name', '$address', '$gender', '$designation', '$age');";
if (!$mysqli->query($sql)) {
$result['error'] = "Erreur Ligne ". $row ." => ".$mysqli->error ;
}else{
$result['success'] = array("Ligne"=>$row, "datas"=>array($name, $address, $gender, $designation, $age));
}
}else{
$result['error'] = " Nombre de colonnes incorectes à la ligne ".$row;
}
}
}else{
$result['error'] = " Erreur lors de la lecture du fichier ". $csvFilePath ." !";
}
}else{
$result['error'] = " Format de fichier incorect !";
}
if(!empty($result['error'])){
foreach($result['error'] as $err){
echo "<div class='error'>".$err."</div>";
}
}
comme tu peux le voir...j'ai géré au niveau de la connexion et de l'exécution des requêtes... les éventuelles erreurs....
J'ai également remis le code que tu n'avais pas pris en compte concernant le nombre de "colonnes" de ton fichier pour éviter tes erreurs undefined index...
J'espère que tu tiendras compte de ces modifications et que tu appliqueras ce même genre d'ecriture "propre" du code à l'avenir.
merci bien
voilà ce que me montre comme message d'erreur Jordane :
Parse error: syntax error, unexpected 'if' (T_IF), expecting ']' in C:\EasyPHP-Devserver-17\eds-www\importation.php on line 26
je l'ai remplacer automatiquement sa passe pas aussi
regarde jordane :
Strict Standards: Only variables should be passed by reference in C:\EasyPHP-Devserver-17\eds-www\importation.php on line 24
Warning: fopen(C:\EasyPHP-Devserver-17ds-www.csv): failed to open stream: Invalid argument in C:\EasyPHP-Devserver-17\eds-www\importation.php on line 26
Warning: Invalid argument supplied for foreach() in C:\EasyPHP-Devserver-17\eds-www\importation.php on line 59
Tu as réussi ? Ok .. donc merci de mettre le sujet en résolu. (via l'icone de roue crantée qui se trouve en haut à droite du titre de ta question )
Pour ton nouveau souci... merci d'ouvrir une nouvelle discussion.
Tu nous montres ton code modifié..
impoort.php :
message d'érreur :
Notice: Undefined offset: 1 in C:\Program Files (x86)\EasyPHP-Devserver-17\eds-www\Importation Code\impoort.php on line 15
Notice: Undefined offset: 2 in C:\Program Files (x86)\EasyPHP-Devserver-17\eds-www\Importation Code\impoort.php on line 16
Notice: Undefined offset: 3 in C:\Program Files (x86)\EasyPHP-Devserver-17\eds-www\Importation Code\impoort.php on line 17
Notice: Undefined offset: 4 in C:\Program Files (x86)\EasyPHP-Devserver-17\eds-www\Importation Code\impoort.php on line 18
EDIT : Correction des balises de code.... (encore.... )
(sans parler du fait que tu ne postes pas ton code correctement et que j'ai été obligé d'éditer ton message encore une fois...)
Bref... moi je laisse tomber.....
Reviens nous voir quand tu seras décidé à lire et comprendre exactement ce qu'on te dit !
chao
pas besoin de demander a chaque fois mon message était très clair et je t'ai posté mes deux codeS