convertir un .txt en .sql

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : convertir un .txt en .sql

par alexbad » 12 mars 2006, 18:13

Je t'ai montré comment récupérer son contenu, pourquoi ne pas simplement placer son contenu dans un mysql_query() ?

Exemple :
<?php
$key = fopen('data.txt', 'a+');
    $texte = '';
    while (!feof($key))
    {
    $buffer = fgets($key, 4096);
    $texte .= $buffer;
    }
mysql_connect('host', 'user', 'pass');
mysql_select_db('base');

       mysql_query($texte); //La requête

mysql_close();
fclose($key); 
?>

par ma_pomme » 12 mars 2006, 18:10

dsl pour le temps de réaction mais je n'ai pas eu le temps de revenir avant

Donc deja merci de votre aide et pour repondre à Alexbad enfaite je voudrais qu'une fois converti il soit inseré dans la base le tout automatiquement :?

Je me rend compte que j'en demande beaucoup et que c'est probablement impossible. Si c'est le cas dite le moi et j'abanonnerais mon idée

par alexbad » 10 mars 2006, 16:17

Il doit être exécuté automatiquement ou tu copies son contenu en requête?

Il me semblerait simple de simplement lire le fichier, puis de réécrire un .sql :
<?php
$key = fopen('data.txt', 'a+');
	$texte = '';
	while (!feof($key)) 
	{
	$buffer = fgets($key, 4096);
	$texte .= $buffer;
	}

fclose($key);

//Ouverture du .sql
$key = fopen('data.sql', 'a+');

        $sql = $texte;
        fwrite($key, $sql);
fclose($key);
?>
Voilà, c'est comme cela que j'imagine la solution...

par albat » 10 mars 2006, 16:05

Ne peux-tu pas dupliquer ton fichier
et renommer la copie avec l'extension .sql ?

par ma_pomme » 10 mars 2006, 14:34

voici un exemple de presentation des données

Code : Tout sélectionner

2:201:6;M;BSG 75;Le Compte de Lisle;sami;1;0;3;4;6;15;27;1531764;327993;116517;29700;22;0;38;0;0;0;0;0;0;0;0;8250;0;0;2;7650;6300;1000;90;0;85;1;1;60;0;2;26;24;24;26;0;10;2;12;10;6;8;12;2;6;0;0;0;2;11;11;13;12;13;12;8;12;7;7;10;6;7;2;1;2;;1;0;3;4;6;15;27;0;0;19136;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;2;441;0;0;0;0;0;1;0;0;0;2;0;0;0;0;0;4;0;1;0;0;0;0;0;0;5;5;0;2;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;
e)

Et chaque ligne est "referencé" par 3 chiffre separé par de":" et chaque donnée par un ";"

J'ai deja créé mes tables avec phpMyadmin e reste plus qu'a transformé mon fichier de données pour pouvoir l'integre a ma base

par iclo » 10 mars 2006, 14:15

Le plus simple, serait visiblement de convertir le txt en csv, mais tout dépend du format du txt: comment sont présentées les données.

par ma_pomme » 10 mars 2006, 12:48

TU ne peux pas générer ton fichier directement en .sql ?
malheureusement non :? car enfaite le fichier .txt est utilisé par un prog local en C++ pour stock toutes ces info que je veux pouvoir geré en ligne via ma base mysql. Mais le programme en question n'est pas de moi et je ne saurais le modifié :(

par Dominic » 10 mars 2006, 10:04

petit correctif
il faut évidemment mettre $myField[0] etc... à la place de field[0] etc..

par Dominic » 10 mars 2006, 10:00

mysql_select_db('mabase')
OR die('connexion impossible :'.mysql_error());
	if ($myFile = fopen("monFichier.csv","r")) // ou txt
	{	
		while(!feof($myFile))
		{
		$myField = fgetcsv($myFile,200); // j'ai mis 200 comme limite à voir		
$req="INSERT INTO matable VALUES('$field[0]','$field[1]','$field[2]',etc.. )";
		$resultat=mysql_query($req);
		}
	fclose($myFile);
	}
mysql_close();

par Cyrano » 10 mars 2006, 08:32

TU ne peux pas générer ton fichier directement en .sql ?

convertir un .txt en .sql

par ma_pomme » 10 mars 2006, 03:52

Bonjour,

Je cherche a convertir un .txt de données généré automatiquement en .sql pour ensuite faire une insertion dans une BDD.

Mais je ne sais pas comment faire :?