Remplir base de donnée avec un fichier texte

matt51 Messages postés 6 Statut Membre -  
 tedy -
salut
Je suis en 2eme année de bts informatique et pour mon projet je dois remplir une base de donnée en fonction d'un fichier texte que j'ai exporté d'une autre base de donnée...Je ne sait pas trop comment m'y prendre.
Merci d'avance
Configuration: Linux
Firefox 1.5.0.9

9 réponses

  1. matt51
     
    dsl...

    En faite, il n'y a pas de CREATE TABLE dans le fichier texte mais il y a CREATE TABLE.

    Merci pour ton aide
    2
  2. benkeeper Messages postés 81 Statut Membre 45
     
    Bonjour,

    Quel sytème utilisez vous? (MySQL ...)

    Le fichier texte exporté d'une autre base de donnée doit être exécuté par le serveur de bd. Par exemple sous mysql, il faut se connecter au serveur en ligne de commande :

    mysql -u utilisateur - p (le mot de passe sera demandé)

    Une fois sous la ligne de commande mysql, il suffit de taper :

    use database Nomdelabase;

    source Nomdufichier; (Nomdufichier étant le fichier exporté de l'autre base).

    Quand je dis "il suffit", je simplifie un peu parce qu'il est possible que le fichier exporté ne soit pas valide pour de nombreuses raisons, notemment une différence de version entre les 2 bases ...

    Mais si tout se passe bien, le fichier est lu ligne par ligne et les requête SQL sont exécutée, recréant donc la base telle qu'elle a été exportée depuis l'autre système.

    Ben :)
    1
    1. matt51
       
      bonjour

      J'utilise le systeme MySql...

      Merci pour ton aide mais je fais ce que tu m'a dit et sa me créer une nouvelle base de donné. Moi je voudrais remplir ma base de donné et non pas en créer une autre...

      Merci d'avance
      0
    2. tedy
       
      dans le cas d'oracle que peut on faire
      0
  3. benkeeper Messages postés 81 Statut Membre 45
     
    Dans la fichier texte il doit y avoir en tout début une ligne qui crée la base (CREATE DATABASE ...)

    Supprime la et remplace la par use Nom_de_ta_base;

    Comme ça il appliquera les directives suivantes à la base qui existe déjà.

    B.
    1
  4. matt51
     
    J'ai remplacé CREATE DATABASE par USE (nom de ma base de donnée) mais sa ne marche pas...ma base ne se rempli pas.

    Voici ce ke je fais:

    mysql> use projet mon_magasin;
    Database changed
    mysql> source projet.txt;
    Query OK, 0 rows affected (0.00 sec)

    Query OK, 0 rows affected (0.00 sec)

    Query OK, 0 rows affected (0.00 sec)

    Merci...
    1
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. louloute300 Messages postés 347 Statut Membre 29
     
    INSERT INTO alarmes ('pkey','date','heure','host-name','alarm-file-name','alarm-desc','number') VALUES (seq_alarmes.NEXTVAL, '$date', '$heure', '$hostname', '$alarmfilename',' $alarmdesc', '$number')

    eu,, ds ma première partie ('pkey','date','heure','host-name','alarm-file-name','alarm-desc','number') , il faut l'appostrophe altGr + 7

    Enfin je pense...
    1
  7. matt51
     
    Bonjour

    Je voudrais mettre à jour ma base de donnée avec un fichier texte que je g exporté.Voici mon fichier texte:

    -- MySQL dump 10.10
    0
    1. blackdam Messages postés 332 Statut Membre 35
       
      J'ai un programme qui pourrait t'aider! j'ai exactement le meme sujet, prendre des infos dans un fichier texte et les insérer dans une table.
      blackdam@hotmail.fr je t'attend, si tu as msn!
      0
      1. matt51 > blackdam Messages postés 332 Statut Membre
         
        Ok...

        On ce voit sur msn alors!Moi c zinkpss@hotmail.fr
        Merci
        0
  8. ririchichi
     
    bONJOUR
    j'ai un probleme
    j'ai le script suivant avec lequel je rempli ma base de données
    <?php
    $monfichier = fopen('test.txt', 'r+');
    while (!feof($monfichier)) {
    $texte = fgets($monfichier, 4096);
    list($date, $heure, $hostname, $alarmfilename, $alarmdesc, $number) = explode(";", $texte);
    $connexion= mysql_connect("localhost","root");

    if($connexion)
    {
    echo "connexion reussie";
    $requete = "CREATE SEQUENCE seq_alarmes
    MINVALUE 1
    STARTWITH 1
    INCREMENT BY 1;
    INSERT INTO alarmes (pkey,date,heure,host-name,alarm-file-name,alarm-desc,number) VALUES (seq_alarmes.NEXTVAL, '$date', '$heure', '$hostname', '$alarmfilename',' $alarmdesc', '$number')";
    $select_db=mysql_select_db("alarmdb",$connexion);
    if ($select_db){
    echo "acces à la db réussi";
    mysql_query($requete,$connexion);
    }
    echo "Les valeurs ont bien été enregistrées dans la table Alarmes \n\n\n ";
    }
    }
    fclose($monfichier);
    ?>

    mais quand j'execute le script la table n'est pas rempli
    merci de m'aider
    cdt
    0
  9. anthoweb Messages postés 7 Statut Membre
     
    INSERT INTO alarmes (pkey,date,heure,host-name,alarm-file-name,alarm-desc,number) VALUES (seq_alarmes.NEXTVAL, \'$date\', \'$heure\', \'$hostname\', \'$alarmfilename\',\' $alarmdesc\',\'$number\')";

    je pense que sur cette partie tu dois insérer des antislashes car dans une requete sql les ' doivent être précédées d'antislashes

    Je ne suis que débutant je ne suis pas sur mais j'ai appris ça sur l'excellent siteduzero.com section PHP/Mysql
    0
    1. anthoweb Messages postés 7 Statut Membre
       
      ou alors tu supprime les \' ou les ' car ce sont des variables
      0
  10. louloute300 Messages postés 347 Statut Membre 29
     
    fait nous voir une partie de ton "fichier texte",,, après le reste c'est du gateau
    0