Exploitation de fichier csv uploadé

Résolu
cs_daris Messages postés 49 Date d'inscription lundi 9 janvier 2006 Statut Membre Dernière intervention 17 février 2009 - 26 oct. 2007 à 08:45
cs_daris Messages postés 49 Date d'inscription lundi 9 janvier 2006 Statut Membre Dernière intervention 17 février 2009 - 29 oct. 2007 à 14:43
Bonjour à tous!

J'ai un souci, aufait je recupere via un formulaire html un fichier csv de 5 colonnes sépareés par des virgule.


Le téléchargement du fichier se passe bien.J'ai mis en place la
function ajouter_matrice() qui me permet de recuperer les données du
fichier csv telechargées.

Je recupere toutes les données du fichier dans un tableau $les_var.


J'ai du mal à partir de $les_var à recuperer les données d'une ligne du fichier csv pour inserer ensuite dans ma base.


Merci à ceux qui peuvent m'aider

Voila la partie du code concernée:
<ol><li class="ligne_off"><?php</li><li class="ligne_off">functionajouter_matrice($file){ </li><li class="ligne_off">            $les_var=array(); </li><li class="ligne_off">            $row=1;// initialisation de la 1ère ligne</li><li class="ligne_off">            $fp=fopen($file,"r");// ouverture du fichier en lecture seule</li><li class="ligne_off">               while($data=fgetcsv($fp,1000,";"))// 1 ligne = au maximum 1000 car. avec séparateur = ;</li><li class="ligne_off">               { </li><li class="ligne_off">                  $num=count($data); </li><li class="ligne_off">                  print" Insertion de la ligne n°".$row." du fichier csv : \n"; </li><li class="ligne_off">                  $row++; </li><li class="ligne_off">                  for($i=0;$i<$num;$i++){ </li><li class="ligne_off">                     list($no_site,$no_band,$distance,$taille,$intensite)=explode(",",$data[$i]); </li><li class="ligne_off">                     array_push($les_var,$no_site,$no_band,$distance,$taille,$intensite); </li><li class="ligne_off">                  }            </li><li class="ligne_off">               } </li><li class="ligne_off">               return$les_var;            </li><li class="ligne_off">            }   </li><li class="ligne_off">            </li><li class="ligne_off">            /*######################################################################*/ </li><li class="ligne_off">            </li><li class="ligne_off">            //TEST PUIS APPEL DE LA FUNCTION ajouter_matrice()</li><li class="ligne_off">          if(($uploadfile)!=($uploaddir)){ </li><li class="ligne_off">          $les_var=   ajouter_matrice($uploadfile); </li><li class="ligne_off">          //print_r($les_var);</li><li class="ligne_off">          </li><li class="ligne_off">                $petit_tableau=array_chunk($les_var,5); </li><li class="ligne_off">                echo"Le nombre de petit tableau est:".count($petit_tableau)."\n";         </li><li class="ligne_off">             print_r($petit_tableau)."
"; </li><li class="ligne_off">             // for($i;$i<count($petit_tableau);$i++){</li><li class="ligne_off">                 echo$no_site=$petit_tableau[0]; </li><li class="ligne_off">             //}</li><li class="ligne_off"> </li><li class="ligne_off">                  list($no_site,$no_band,$distance,$taille,$intensite)=$les_var[$petit_tableau]; </li><li class="ligne_off">                  echo$no_site.'/'.$no_band.'/'.$distance.'/'.$taille.'/'.$intensite; </li><li class="ligne_off">               </li><li class="ligne_off">             </li><li class="ligne_off">          }else{ </li><li class="ligne_off">             echo"Spécifier un fichier !"; </li><li class="ligne_off">          }  </li><li class="ligne_off">?>
</li></ol>

3 réponses

cs_daris Messages postés 49 Date d'inscription lundi 9 janvier 2006 Statut Membre Dernière intervention 17 février 2009
29 oct. 2007 à 14:43
Hello,
Tu as bien raison mais j'y avais pas pensée . Merci.

Voila comment j'ai fais:

              $uploaddir = 'repertoire de stockage sur le serveur/';
              $uploadfile = $uploaddir . basename($_FILES['nom provenant du formulaire']['name']);
               
              if (move_uploaded_file($_FILES['nom provenant du formulaire']['tmp_name'], $uploadfile)) {
                      echo "Le fichier est valide, et a été téléchargé avec succès.\n";
              }
              else{
                      echo "Echec telechargement:\n";
              }
                                $row = 1; // initialisation de la 1ère ligne du fichier uploadé
                                $fp = fopen ($uploadfile,"r"); // ouverture du fichier en lecture seule                                    while ($data fgetcsv ($fp, 1000, ";")) // 1 ligne au maximum 1000 car. avec séparateur = ;
                                    {
                                    $num = count ($data);
                                         for ($i=0; $i < $num; $i++){
                                         list($A, $B, $C, $D,$E) = explode(",", $data[$i]);    

                                            //REQUETE D'INSERTION
                                            $sql1 =" insert into ma_table (A,B,C,D,E)  values($A, $B, $C, $D,$E)";   
                                                if ( $conn->Execute($sql1) === false) {
                                                    echo "Echec d'insertion";
                                                 }else{
                                                     echo"Insertion de la matrice reussie !";
                                                 }   
                                         }
                                    $row++;               
                                    }

Plus simple qu'au départ mais  c'est plus clair.
        
3
cs_daris Messages postés 49 Date d'inscription lundi 9 janvier 2006 Statut Membre Dernière intervention 17 février 2009
26 oct. 2007 à 13:04
Merci j'ai resolu le problème!
0
cs_mfaraday Messages postés 144 Date d'inscription vendredi 18 avril 2003 Statut Membre Dernière intervention 4 janvier 2010
26 oct. 2007 à 15:51
Bonjour Daris

Je pense que mettre la solution à ton problème, même si c'est toi qui l'a trouvé, pourrait être utile aux gens qui rencontrent le même problème.

Florian
0
Rejoignez-nous