Probleme import csc, txt

gfpl Messages postés 172 Date d'inscription samedi 11 août 2012 Statut Membre Dernière intervention 9 avril 2011 - 4 avril 2011 à 22:56
gfpl Messages postés 172 Date d'inscription samedi 11 août 2012 Statut Membre Dernière intervention 9 avril 2011 - 5 avril 2011 à 21:25
Voila mon problème j'importe un fichier txt ou csv avec 8 champs mais il me retourne toujours le même champs 8 fois je doit faire une erreur qq part ... si qq pouvait me dire ou je me plante...

le formatage csv est bon ( enfin il me semble )

:
;giuseppe;gfpl001@gmail.com
;oiyuyio;yiouyo@hgk.com
;mljk;mkljklm@iupopi.com



il me retourne :

/tmp/php3xfAi8
text/csv
Importation de . name : giuseppe. zmail : gfpl001@gmail.com.
Importation de . name : giuseppe. zmail : gfpl001@gmail.com.
Importation de . name : giuseppe. zmail : gfpl001@gmail.com.
Importation de . name : giuseppe. zmail : gfpl001@gmail.com.
Importation de . name : giuseppe. zmail : gfpl001@gmail.com.
Importation de . name : giuseppe. zmail : gfpl001@gmail.com.
Importation de . name : giuseppe. zmail : gfpl001@gmail.com.
Importation de 7 lignes réalisée avec succès



Code de la page


<?php
session_start();
include_once('../news/fonctions/_connexion.php');
$utilisateur = $_SESSION['id'];
/*
        if(empty($_SESSION['id']))
        {
                    $valid = false;
                    $erreurImport = 'Vous n\'avez pas les permissions requises pour importer vos données';
        }
        else
        {*/

                if(!empty($_POST))
                {

                        $valid = true;
                        //extract($_POST);
                        //$fichier1 = $importation;
                        $fichier1=$_FILES['importation']['tmp_name'];
                        $typeFichier = $_FILES['importation']['type'];

                         /* On ouvre le fichier en lecture seule */
                        if (!empty($fichier1))
                        {
                             $fp = fopen($fichier1, "r"); 
                        }
                        else
                        { /* le fichier n'existe pas */
                               $valid = false;
                               $erreurLecture = 'Fichier introuvable ou invalide';
                        }
                        
                        if($typeFichier !='text/csv')
                        {
                                $valid = false;
                                $erreurTypeFichier = 'Votre fichier n\'est pas un fichier text/csv';
                              
                        }

                }
     //   }

if($valid)
{
       // include("Includes/ConnexionBD.php");
        //requetes SQL pour supprimer anciennes données du client A FAIRE
        
        $compteur = 0;

            echo $fichier1.'
'; // renvoi l'adresse temporaire du fichier
            echo $typeFichier.'
'; //renvoi bien text/csv
             
 $it='1';
        while($data = fgetcsv($fp,4096,';'))
 {
           // on remplit le array d'élèments
           $C1 = $data[0]; 
           $C2 = $data[1]; 
           $C3 = $data[2]; //on lit la ligne
 $num = count ($data);
 $row++;
    for ($c=0; $c < $num; $c++) { 
           
          // $C4 = $data[3];
           
        

$strSQL = "INSERT INTO newsletter ";
$strSQL .="(id,name,email) ";
$strSQL .="VALUES ";
$strSQL .="('','".array($C2)."','".array($C3)."' )";

         
           $compteur = $compteur + 1;
           echo 'Importation de '. $C1.'. name : '.$C2.'. email : '.$C3.'. 
';
        }}
            //fclose($fp); 
           echo 'Importation de '.$compteur.' lignes réalisée avec succès';
}

?>

<!DOCTYPE html>
<html lang="fr">
        <head>
                    <meta charset="ISO 8859-1" />
                    <title>A FAIRE</title>
                 
                    <!-- meta -->
                    <meta name="description" content="A FAIRE" />
                    <meta name="keywords" content="A FAIRE" />
                    <meta name="author" content="A FAIRE" />
                 
                    <!-- mon icon -->
                    <link rel="shortcut icon" href="favicon.ico" />
                    <!-- ma template.css -->
                    <link href="../Connexion.css" type="text/css" rel="stylesheet" />
         
        </head>


         

                

                <?php if(isset($erreurImport)) echo $erreurImport; ?>
                <?php if(isset($erreurFichier)) echo $erreurFichier; ?>
                <?php if(isset($erreurLecture)) echo $erreurLecture; ?>
                <?php if(isset($erreurTypeFichier)) echo $erreurTypeFichier; ?>
                

                

                <?php if(isset($resultat)) echo $resultat; ?>
                


                <form method="post" enctype="multipart/form-data" action="">
                <label for="importation">

                
                </form>
                



        
</html>

2 réponses

Morphinof Messages postés 255 Date d'inscription vendredi 20 avril 2007 Statut Membre Dernière intervention 9 août 2013 4
5 avril 2011 à 11:51
Importation de 7 lignes ca te parais pas bizarre dans la mesure ou y'e a que 3 ?

Pourquoi for ($c=0; $c < $num; $c++) alors que tu stocke tes colones dans tes variable $C1, $C2 et $C3, ca n'a pas de sens et surtout ca ne te sert strictement a rien, a part a lancer "$num = count ($data);" fois l'execution de ta requete SQL.

Maintenant ca explique pas pourquoi $C1, $C2 et $C3 ne changent pas de valeur sauf si fgetcsv lit tes 3 lignes d'un coup.

Un var_dump($data); pourrai t'aider a y voir plus clair sur ce que contient $data.

$it='1'; $row++; ne sont jamais utilisees.

Fermer ton pointeur sur fichier me parait judicieux, pourquoi le commenter ? -> fclose($fp);
0
gfpl Messages postés 172 Date d'inscription samedi 11 août 2012 Statut Membre Dernière intervention 9 avril 2011
5 avril 2011 à 21:25
merci pour ta réponse je l'ai comment vu que il me retournait un message d'erreur comme si il était déjà fermer ...
0
Rejoignez-nous