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
A voir également:

9 réponses

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
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
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
tedy
 
dans le cas d'oracle que peut on faire
0
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
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
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
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
matt51 > blackdam Messages postés 332 Statut Membre
 
Ok...

On ce voit sur msn alors!Moi c zinkpss@hotmail.fr
Merci
0
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
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
anthoweb Messages postés 7 Statut Membre
 
ou alors tu supprime les \' ou les ' car ce sont des variables
0
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