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 :

Importation fichier texte dynamique sous MySQL


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2007
    Messages : 24
    Par défaut Importation fichier texte dynamique sous MySQL

    Salut,

    Je cherche à importer le contenu d’un fichier texte dans ma table Utilisateur sous MySQL.
    Mon fichier texte se présente comme ci-dessous.

    ,Nasbe, 192.168.1.2,
    ,Jean, 192.168.1.3,
    ,Marc, 192.168.1.5,
    ,Jacques, 192.168.1.6,
    ,Louis, 192.168.2.5,
    ,Marcel, 192.168.3.5,

    Il est dynamique, c'est-à-dire qu'il se modifie tout le temps. C'est pourquoi je ne fais pas un bête import mais que je cherche à l'importer de cette manière.

    J'ai d'abord créer ce petit bout de script, qui fonctionne sans problème. Simplement j'aimerai pouvoir y rajouter la deuxième partie du code ci-dessous. A quelle niveau dois-je le faire. A chaque fois que j'essaie j'ai des erreurs parse error. Quelqu'un aurait-il une piste??

    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
    <?php
    $Fichier = "C:\\Users\\Nasbe\\Desktop\\AdressageIP.txt";
     
    if (file_exists($Fichier)) {
    		$fp = fopen($Fichier, "r");
    		flock ($fp, LOCK_SH); // Bloquer le fichier en écriture
    		$ligne = fgets($fp, 1000);
    		$resultat = $ligne;
     
    		while (!feof($fp)){
    			$ligne = fgets ($fp,1000);	
    			$resultat .= $ligne;
     
    		}
    		echo $resultat;
    		flock ($fp, LOCK_UN);  // Bloquer le fichier en lecture
    		fclose ($fp);			
    }
    ?>
     
    /*
    $bd ='gestionacces';
     
    	$lien = mysql_pconnect ('localhost', 'root', '');
    	mysql_select_db($bd);
    	$table = 'utilisateurs';
    	if ($lien == FALSE){
    		echo "connexion impossible à la base $bd";
    	} else {
    		foreach ($resultat) {
    		$champs = explode(",", $resultat);
    		$query  = "INSERT INTO utilisateurs";
    		$query .= "(IdUtilisateur, NomUtilisateur, IP)";
    		$query .= "VALUES";
    		$query .= "(".$champs[0].", '".$champs[1]."', '".$champs[2]."')";
    		mysql_query($query);
     
    mysql_close($lien);
     
    }
    ?>
    Merci en tout cas d'avoir pris le temps de me lire.

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Par défaut
    TU fais un foreach ($resultat), alors que resultat est une chaine de caractere je pense que tu devrais modifier
    while (!feof($fp)){
    $ligne = fgets ($fp,1000);
    $resultat[] = $ligne;

    }

    j'ai pas tout regardé mais c'est deja un début...

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2007
    Messages : 24
    Par défaut Problème parse error ligne33
    Oui effectivement, erreur de fatigue. Voilà maintenant que j'ai corrigé, j'ai toujours un problème de parse error. Je comprends pas, si tu pouvais me débloquer, ca serait vraiment cool.


    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
    $Fichier = "C:\\Users\\Nasbe\\Desktop\\AdressageIP.txt";
     
    if (file_exists($Fichier)) {
    	$fp = fopen($Fichier, "r");
    	flock ($fp, LOCK_SH); // Bloquer le fichier en écriture
    	$ligne = fgets($fp, 1000);
    	$resultat=array();
    	$resultat = $ligne;
     
    	while (!feof($fp)){
    		$ligne = fgets ($fp,1000);	
    		$resultat.= $ligne;		
    		}
     
    		flock ($fp, LOCK_UN);  // Bloquer le fichier en lecture
    		fclose ($fp);	
    	}	
    $bd ='gestionacces';
    $lien = mysql_pconnect ('localhost', 'root', '');
    mysql_select_db($bd);
    $table = 'utilisateurs';
    	if ($lien == FALSE){
    		echo "connexion impossible à la base $bd";
    	} else {
    		foreach ($resultat) {
    		$champs = explode(",", $resultat);
    		$query  = "INSERT INTO utilisateurs";
    		$query .= "(IdUtilisateur, NomUtilisateur, IP)";
    		$query .= "VALUES";
    		$query .= "(".$champs[0].", '".$champs[1]."', '".$champs[2]."')";
    		mysql_query($query);
    		}
    }
    mysql_close($lien);
     
    ?>

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Par défaut
    Ton foreach n'est pas bon :
    foreach ($resultat as $res)

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2007
    Messages : 24
    Par défaut Problème d'indice
    Ok cette fois c'est bon pour la bloucle mais il me met un autre message d'erreur à la ligne ci-dessous. Notice: Undefined offset: 1 et Notice: Undefined offset: 2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $query .= "(".$champs[0].", '".$champs[1]."', '".$champs[2]."')";

    Mon fichier texte est présenté comme ci :

    ,Nasbe, 192.168.1.2,
    ,Jean, 192.168.1.3,
    ,Marc, 192.168.1.5,
    ,Jacques, 192.168.1.6,
    ,Louis, 192.168.2.5,
    ,Marcel, 192.168.3.5,

    Je ne vois donc pas ou est l'erreur.

    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
    <?php
     
    $Fichier = "C:\\Users\\Nasbe\\Desktop\\AdressageIP.txt";
     
    if (file_exists($Fichier)) {
    	$fp = fopen($Fichier, "r");
    	flock ($fp, LOCK_SH); // Bloquer le fichier en écriture
    	$ligne = fgets($fp, 1000);
    	$resultat=array();
    	$resultat[] = $ligne;
     
    	while (!feof($fp)){
    		$ligne = fgets ($fp,1000);	
    		$resultat[].= $ligne;		
    		}
     
    		flock ($fp, LOCK_UN);  // Bloquer le fichier en lecture
    		fclose ($fp);	
    	}	
    $bd ='gestionacces';
    $lien = mysql_pconnect ('localhost', 'root', '');
    mysql_select_db($bd);
    $table = 'utilisateurs';
    	if ($lien == FALSE){
    		echo "connexion impossible à la base $bd";
    	} else {
    		foreach ($resultat as $res) {
    		$champs = explode(",", $res);
    		$query  = "INSERT INTO utilisateurs";
    		$query .= "(IdUtilisateur, NomUtilisateur, IP)";
    		$query .= "VALUES";
    		$query .= "(".$champs[0].", '".$champs[1]."', '".$champs[2]."')";
    		mysql_query($query);
    		}
     
    }
    mysql_close($lien);
     
    ?>

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2007
    Messages : 24
    Par défaut Chargement base pas terrible
    Ok c'est nickel, ca fonctionne en partie.

    Ce que j'aimerai c'est qu'il m'incrémente automatiquement l'ID. Je m'explique, ma table est composée de trois champs

    ID, NomUtilisateur, IP.


    Mon fichier texte est présenté comme ci-dessous.

    ,Nasbe, 192.168.1.2,
    ,Jean, 192.168.1.3,
    ,Marc, 192.168.1.5,
    ,Jacques, 192.168.1.6,
    ,Louis, 192.168.2.5,
    ,Marcel, 192.168.3.5,

    hors si je le laisse comme ca, il ne va pas faire d'insertion dans la table. Je suis obligé de rentrer les numéros moi-même à la main de cette manière. Alors que si je fais un importation manuelle avec le fichier ci-dessus., il m'incrémente automatiquement les numéros. Aurait-tu une piste à ce niveau.

    1 ,Nasbe, 192.168.1.2,
    2,Jean, 192.168.1.3,
    3,Marc, 192.168.1.5,
    4,Jacques, 192.168.1.6,
    5,Louis, 192.168.2.5,
    6,Marcel, 192.168.3.5,

    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
    <?php
     
    $Fichier = "C:\\Users\\Nasbe\\Desktop\\AdressageIP.txt";
     
    if (file_exists($Fichier)) {
    $resultat=file($Fichier);
    }
     
    $bd ='gestionacces';
    $lien = mysql_pconnect ('localhost', 'root', '');
    mysql_select_db($bd);
    $table = 'utilisateurs';
    	if ($lien == FALSE){
    		echo "connexion impossible à la base $bd";
    	} else {
    		foreach ($resultat as $res) {
    		$champs = explode(",", $res);
    		$query  = "INSERT INTO utilisateurs";
    		$query .= "(IdUtilisateur, NomUtilisateur, IP)";
    		$query .= "VALUES";
    		$query .= "(".$champs[0].", '".$champs[1]."', '".$champs[2]."')";
    		mysql_query($query);
    		}
     
    }
    mysql_close($lien);
     
    ?>

Discussions similaires

  1. Importer un fichier texte txt vers mysql
    Par pasc06 dans le forum Débuter
    Réponses: 1
    Dernier message: 31/01/2009, 17h58
  2. probleme avec un import fichier texte dans mysql
    Par xodeax dans le forum Requêtes
    Réponses: 2
    Dernier message: 04/07/2006, 13h24
  3. [TP] Création fichier texte lisible sous Windows
    Par frechy dans le forum Turbo Pascal
    Réponses: 2
    Dernier message: 02/03/2006, 20h42
  4. pb importation fichier texte
    Par borisa dans le forum Access
    Réponses: 5
    Dernier message: 24/02/2006, 17h44
  5. Réponses: 2
    Dernier message: 02/02/2006, 18h21

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