Rechercher : dans
Par :

Remplir base de donnée avec un fichier texte

Dernière réponse le 11 avr 2008 à 12:50:10 matt51, le 5 mar 2007 à 11:19:36 
 Signaler ce message aux modérateurs

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

1

benkeeper, le 5 mar 2007 à 14:33:46
  • +1

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 :)

Répondre à benkeeper

2

matt51, le 7 mar 2007 à 08:23:50
  • +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

Répondre à matt51

3

benkeeper, le 7 mar 2007 à 08:53:14
  • +1

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.

Répondre à benkeeper

4

matt51, le 7 mar 2007 à 09:24:17
  • +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...

Répondre à matt51

5

matt51, le 7 mar 2007 à 09:51:37
  • +1

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

Répondre à matt51

6

matt51, le 8 mar 2007 à 08:23:52
  • +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 -- Host: 192.168.0.83 Database: projet
-- ------------------------------------------------------
-- Server version 5.0.22-Debian_0ubuntu6.06.2-log

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Current Database: `projet`
--

CREATE TABLE /*!32312 IF NOT EXISTS*/ `projet` /*!40100 DEFAULT CHARACTER SET latin1 */;

USE `projet`;

--
-- Table structure for table `PrixSouhaite`
--

DROP TABLE IF EXISTS `PrixSouhaite`;
CREATE TABLE `PrixSouhaite` (
`CodeBarre` int(20) unsigned NOT NULL default '0',
`Marque` varchar(30) NOT NULL,
`Type` text NOT NULL,
`Produit` varchar(50) NOT NULL,
`PrixConseille` float unsigned NOT NULL default '0',
PRIMARY KEY (`CodeBarre`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

--
-- Dumping data for table `PrixSouhaite`
--


/*!40000 ALTER TABLE `PrixSouhaite` DISABLE KEYS */;
LOCK TABLES `PrixSouhaite` WRITE;
INSERT INTO `PrixSouhaite` VALUES (789541321,'tosh','eiei','toto',123),(4294967295,'hp','multi­media','PC2ouf',6000),(123456789,'sony','multi','play',150),­(321654987,'lol','film','start',1500),(65489789,'sony','cons­ole','touch',200),(65413987,'lol','film','pitoucDormous',250­),(123654897,'tosh','DVD','les schtroumphes',160),(789456123,'test','test','test',123),(159­75348,'test1','test1','test1',1231),(89745613,'test2','test2­','test2',12311),(47987123,'test4','test4','test4',198);
UNLOCK TABLES;


Merci d'avance pour votre aide

Répondre à matt51

7

blackdam, le 8 mar 2007 à 09:03:33
  • +3

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! Plus t'avance moins vite, moins t'avance plus vite

Répondre à blackdam

8

matt51, le 8 mar 2007 à 09:31:11
  • +1

Ok...

On ce voit sur msn alors!Moi c zinkpss@hotmail.fr
Merci

Répondre à matt51

9

 ririchichi, le 11 avr 2008 à 12:50:10

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

Répondre à ririchichi