Remplir base de donnée avec un fichier texte

Fermé
matt51 Messages postés 6 Date d'inscription lundi 5 mars 2007 Statut Membre Dernière intervention 27 avril 2007 - 5 mars 2007 à 11:19
 tedy - 18 janv. 2012 à 00:35
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

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 Date d'inscription samedi 4 septembre 2004 Statut Membre Dernière intervention 26 janvier 2008 45
5 mars 2007 à 14:33
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
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
dans le cas d'oracle que peut on faire
0
benkeeper Messages postés 81 Date d'inscription samedi 4 septembre 2004 Statut Membre Dernière intervention 26 janvier 2008 45
7 mars 2007 à 08:53
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
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 335 Date d'inscription jeudi 3 juin 2010 Statut Membre Dernière intervention 28 novembre 2012 29
Modifié par louloute300 le 4/06/2010 à 21:48
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
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 327 Date d'inscription lundi 19 février 2007 Statut Membre Dernière intervention 13 février 2015 35
8 mars 2007 à 09:03
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 327 Date d'inscription lundi 19 février 2007 Statut Membre Dernière intervention 13 février 2015
8 mars 2007 à 09:31
Ok...

On ce voit sur msn alors!Moi c zinkpss@hotmail.fr
Merci
0
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 6 Date d'inscription mercredi 26 mai 2010 Statut Membre Dernière intervention 6 août 2010
26 mai 2010 à 07:14
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 6 Date d'inscription mercredi 26 mai 2010 Statut Membre Dernière intervention 6 août 2010
26 mai 2010 à 07:16
ou alors tu supprime les \' ou les ' car ce sont des variables
0
louloute300 Messages postés 335 Date d'inscription jeudi 3 juin 2010 Statut Membre Dernière intervention 28 novembre 2012 29
4 juin 2010 à 14:50
fait nous voir une partie de ton "fichier texte",,, après le reste c'est du gateau
0