Php fichier CSV et bd

Fermé
ranita_1990 Messages postés 15 Date d'inscription vendredi 13 mars 2015 Statut Membre Dernière intervention 30 mars 2018 - Modifié par jordane45 le 30/03/2015 à 09:10
 Utilisateur anonyme - 30 mars 2015 à 23:29
bonjour,
j'ai des erreurs lors de l'importation d'un fichier CSV et l'enregistrement de son contenu dans la base de données MYSQL
voila mon code
 <?php


if (isset($_POST['submit'])) {

    if (is_uploaded_file($_FILES['filename']['tmp_name'])) {
        
        
        readfile($_FILES['filename']['tmp_name']);
    }


    $handle = fopen($_FILES['filename']['tmp_name'], "r");
  



  $host = "localhost";
  $bdd = "monitoring";
  $user = "root";
  $passwd = "";
  $link= mysqli_connect($host,$user,$passwd,$bdd) or die ("Erreur de connexion au serveur");
mysqli_select_db($link, $bdd)or die ("Erreur de connexion a la bdd");


    while (($data = fgetcsv($handle, 100000, ";"))==FALSE) {
   
       $import="INSERT into ps_kpi(period_start_time, BSC_Name, Segment_Name, SEGMENT, DL_TBF_success_rate, UL_TBF_success_rate, GPRS_DL_TBF_drop, GPRS_UL_TBF_drop_rate, Downlink_multislot_allocation_blocking, UL_mlslot_allocation_blocking, Downlink_multislot_soft_blocking, TBF_EStFail_ConUL_tbf_Rate_H, TBF_estab_SR_no_resp_MS_resources, TBF_Drop_rate_UL_DL )
  values( '$data[0]', '$data[1]', '$data[2]', '$data[3]', '$data[4]', '$data[5]', '$data[6]', '$data[7]', '$data[8]', '$data[9]', '$data[10]', '$data[11]', '$data[12]', '$data[13]' )";

       mysqli_query($link,$import) or die(mysqli_error($link));
    }

    fclose($handle);

    print "Import done";

//view upload form
} else {

   

   print "<form enctype='multipart/form-data' action=\"\" method='post'>";

    print "File name to import:<br />\n";

    print "<input size='200' type='file' name='filename'><br />\n";

   print "<input type='submit' name='submit' value='Upload'></form>";

}

?>


et voila les erreurs :

[Warning: fgetcsv() expects parameter 1 to be resource, boolean given in C:\wamp\www\upload PS_KPI.php on line 349
Call Stack
# Time Memory Function Location
1 0.0030 154608 {main}( ) ..\upload PS_KPI.php:0
2 0.0910 164584 fgetcsv ( ) ..\upload PS_KPI.php:349]


et ca

[Warning: fopen(): Filename cannot be empty in C:\wamp\www\upload PS_KPI.php on line 336
Call Stack
# Time Memory Function Location
1 0.0030 154608 {main}( ) ..\upload PS_KPI.php:0
2 0.0060 155872 fopen ( ) ..\upload PS_KPI.php:336]


EDIT :AJout des balises de code
A voir également:

5 réponses

Bonjour

Il semble bien que ton fichier ne soit pas téléchargé. Est-ce que ton
readfile($_FILES['filename']['tmp_name']);
(qui n'a rien à faire là normalement) affiche quelque chose ?
As-tu testé $_FILES['filename']['error'] pour voir si tu avais une erreur de téléchargement ?
0
ranita_1990 Messages postés 15 Date d'inscription vendredi 13 mars 2015 Statut Membre Dernière intervention 30 mars 2018
29 mars 2015 à 20:33
nnn mais mon fichier est trop volumineux je pense. Car si j'importe un fichier de nombre de lignes limiter ca marche bien. mais je sais pas comment gerer ce probleme merci de m'aider .
0
Utilisateur anonyme
29 mars 2015 à 21:25
mon fichier est trop volumineux je pense
C'est bien de "penser", mais c'est mieux d'être sûr. Vérifie d'abord le code de l'erreur, ça évite de gaspiller de l'énergie à résoudre le problème de la taille si la vraie raison est ailleurs.
0
ranita_1990 Messages postés 15 Date d'inscription vendredi 13 mars 2015 Statut Membre Dernière intervention 30 mars 2018
30 mars 2015 à 06:40
ui je suis sur j'ai des fichiers de 15 Mo et de plus que 100000 lignes c pour pour cela que je peux pas l'importer de la mm façon qu'un petit fichier?? y'a t'il une méthode pour gerer ça s'il vous plait
0
Utilisateur anonyme
30 mars 2015 à 07:46
ui je suis sur
Le seul moyen d'être sur de la cause, c'est d'afficher le code d'erreur comme je te l'ai demandé. Pourquoi ne le fais-tu pas ?

Si le problème est bien la taille, tu peux la modifier dans le fichier php.ini. Il y a deux lignes à modifier : post_max_size et upload_max_filesize.
Si tu n'as pas accès au php.ini, tu as encore plusieurs possibilités :
- découper ton fichier en plusieurs morceaux et les envoyer un à un. Vérifie avec phpinfo() à quelle taille tu as droit, et fais bien les coupures entre deux lignes, pas au milieu d'une ligne !
- transférer ton fichier en FTP. Bien sûr, il faudra supprimer la partie téléchargement de ton script.
0
ranita_1990 Messages postés 15 Date d'inscription vendredi 13 mars 2015 Statut Membre Dernière intervention 30 mars 2018
30 mars 2015 à 11:36
voila les erreurs:
[[Warning: fgetcsv() expects parameter 1 to be resource, boolean given in C:\wamp\www\upload PS_KPI.php on line 349
Call Stack
# Time Memory Function Location
1 0.0030 154608 {main}( ) ..\upload PS_KPI.php:0
2 0.0910 164584 fgetcsv ( ) ..\upload PS_KPI.php:349]]
et ca
[[Warning: fopen(): Filename cannot be empty in C:\wamp\www\upload PS_KPI.php on line 336
Call Stack
# Time Memory Function Location
1 0.0030 154608 {main}( ) ..\upload PS_KPI.php:0
2 0.0060 155872 fopen ( ) ..\upload PS_KPI.php:336]]
0
ranita_1990 Messages postés 15 Date d'inscription vendredi 13 mars 2015 Statut Membre Dernière intervention 30 mars 2018
30 mars 2015 à 11:43
j'ai modifié les parametres de php.ini Il commence d'importer le fichier mais dans certain temps il m'affiche une erreur (une erreur s'est produite lors de l'affichage de cette page web, pour continuer actualiser cette page ou ouvrier en une autre)
et bien sur l'insertion dans la base se fait pas des lignes vides
0
Utilisateur anonyme
30 mars 2015 à 13:55
Ces erreurs là, tu les avais déjà données. Je te demandais le code d'erreur du téléchargement. Mais laisse tomber.
La nouvelle erreur que tu constates est sans doute due à la durée d'exécution du script, il faut aussi la modifier. C'est max_execution_time
0
ranita_1990 Messages postés 15 Date d'inscription vendredi 13 mars 2015 Statut Membre Dernière intervention 30 mars 2018
30 mars 2015 à 20:52
est ce que le transfer via FTP est indispensable ou il faut just modifier php.ini
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
30 mars 2015 à 23:29
Est-ce que tu comprends à quoi servent le FTP et le php.ini ? On a vraiment l'impression que tu attends simplement qu'on te donne une recette, et que tu n'envisages pas de comprendre toi-même.
0