IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Transfert CSV MySQL (pb gestion adresse)


Sujet :

PHP & Base de données

  1. #1
    Membre habitué
    Inscrit en
    Mai 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mai 2007
    Messages : 262
    Points : 172
    Points
    172
    Par défaut Transfert CSV MySQL (pb gestion adresse)
    Bonjour à tous,

    J'ai un fichier CSV du type :
    col1 | col2 | col3

    ad1 | ad2 |CP

    Mon soucis se situe au niveau de l'adresse 2 qui contient une chaine de caractère de cette forme :

    5, chemin de. ...

    Voila le soucis serait de découper cette chaine pour la mettre dans 2 varaibles distinctes mais je n'y arrive pas...

    J'arrive à récupérer certaines données mais sans pouvoir vraiment récupérer les données voulues.

    Voici un bout de mon code actuel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    if(isset($_POST['geo'])) {
    	$i='1';
        $repertoireDestination = "upload/";
        $nomDestination        = $_FILES["monfichier"]["name"];
     
        // Pour raison de sécurité nous ajouterons aux fichiers
        // portant une extension .php .php3, l'extension .txt
        if (eregi(".php", $nomDestination)) {
            $nomDestination .= ".txt";
        }
     
        if (is_uploaded_file($_FILES["monfichier"]["tmp_name"])) {
            if (copy($_FILES["monfichier"]["tmp_name"],
                       $repertoireDestination.$nomDestination)) {
     
    $row = 1;
    $handle = fopen("upload/localisation.csv", "r");
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
     
        $num = count($data);
     
    	$row++;
     
     
        for ($c=0; $c < $num; $c++) {
     
     
    	echo "$data[0]<br/>";
     
    	list($champ1, $champ2, $champ3, $champ4, $champ5, $champ6, $champ7, $champ8) = explode(';',$data[$c]);
     
       for($piece = strtok($champ1, ",");
          $piece != "";
          $piece = strtok(","))
     
       for($piece2 = strtok($champ2, ",");
          $piece2 != "";
          $piece2 = strtok(","))	  
     
     
     
    	$champ1=addslashes(utf8_encode($champ1));
    	$champ6=addslashes(utf8_encode($champ6));
    	$champ3=addslashes(utf8_encode($champ3));
    	$champ4=addslashes(utf8_encode($champ4));
     
     
     
    $Text=$champ6; 
    	$Nouvelle="";
     
     
    for ($i = 0; $i < strlen($Text); $i++) { 
    if (substr($Text, $i,1) != ' ') 
    { 
    $Nouvelle=$Nouvelle . substr($Text, $i,1); 
    } 
    }
    $Text=$champ7; 
    	$Nouvelle2="";
     
     
    for ($i = 0; $i < strlen($Text); $i++) { 
    if (substr($Text, $i,1) != ' ') 
    { 
    $Nouvelle2=$Nouvelle2 . substr($Text, $i,1); 
    } 
    }
    Actuellement, je récupère dans $data[0] la col1, le numéro de la col2 (mais il les interpréte 2 fois => doublons) ou la col3 si il n'y a pas de numéro.
    Dans $data[1], je ne récupère que les adresses ayant un numéro devant.

    Comment m'y retrouver la dedans ???

    Merci pour votre aide et n'hésitez pas à me poser des questions... !

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    150
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 150
    Points : 186
    Points
    186
    Par défaut
    Bonjour,

    La solution ne se trouverait-elle pas dans la fonction strstr(); ?

    http://www.php.net/strstr

  3. #3
    Membre actif
    Inscrit en
    Juillet 2007
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 201
    Points : 241
    Points
    241
    Par défaut
    J'espère que tu fais gaffe à la "," lors de transfert CSV car elle peut aussi casser ton resultat.
    Tu pourrai utiliser un strtr()comme la spécifié Vell ou un explode() pour (comme séparateur la ",". et mettre les resultats dans un tableau ou une variable pour les tratiter.

    Sois tu utilises comme separateur le ";" lors du transfert.

Discussions similaires

  1. Pb transfert bdd MySQL 5 => MySQL 3
    Par alpking dans le forum Requêtes
    Réponses: 7
    Dernier message: 24/11/2006, 14h13
  2. transfert bdd mysql
    Par nawal106 dans le forum Administration
    Réponses: 3
    Dernier message: 25/09/2006, 08h19
  3. [CSV/MySql] Pays et villes de l'étranger
    Par speedev dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 24/07/2006, 13h07
  4. Transfert bdd MySQL >> message d'erreur !?
    Par bodybug dans le forum Requêtes
    Réponses: 2
    Dernier message: 14/02/2006, 21h11
  5. application php+mysql de gestion executable
    Par kephrem dans le forum SQL Procédural
    Réponses: 8
    Dernier message: 03/02/2006, 09h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo