Fichier.Txt -> Table MySQL

spoof
Invité n'ayant pas de compte PHPfrance

26 juin 2007, 16:48

j'avais oublié les "":
$user:"" ;
$passwd:"" ;
$host:"localhost"; 
$bdd:"test";

Mammouth du PHP | 693 Messages

26 juin 2007, 17:37

Ca on s'en fiche des identifiant, c'est même conseillé de pas les mettre. Enfin, comme c'est en local, tu ne risque rien.

Tu t'es bien connecté, mais il manque la fonction qui envoie la requete à la BDD. Avec Mysql, c'est mysql_query.
/*declaration variables*/ 
$user:  ???;           // <--- Quel est le login /pwd par defaut de easyPHP 
$passwd:  ???; 
$host:localhost;  
$bdd:test; 
         
if (isset($_POST['fichier1.txt']) or isset($_POST['fichier2.txt'])) { 
// D'abord, on se connecte à MySQL 
mysql_connect("$host", "$user", "$passwd") or die("erreur de connexion serveur"); 
mysql_select_db("$bdd") or die("erreur de connexion Bdd"); 
         
// Lance ma fonction LOAD DATA INFILE   
mysql_query("load data infile 'fichier.txt'");       // <----çà me semble un peu simple là non ? 
         
// On se déconnecte de MySQL 
mysql_close(); 
} 
else  
{ 
echo "pas de fichier présent"; 
} 

Par contre, je ne comprend pas trop... Tu testes les variables $_POST['fichier1.txt'] pourquoi ?
Modifié en dernier par orgerix le 27 juin 2007, 00:02, modifié 1 fois.

spoof
Invité n'ayant pas de compte PHPfrance

26 juin 2007, 21:33

Merci pour ta réponce!

Je souhaite récupérer mes fichier par un formulaire avec :
if (isset($_POST['fichier1.txt']) or isset($_POST['fichier2.txt']))

Maintenant je ne pense pas que ca fonctionne comme çà
Je ne sais pas comment faire pour récupérer mes fichiers un par un.

Dans le contexte j'ai :
Un répertoire avec des fichiers texte dans lequel j'ai des informations séparé par des ";".
Le but du script est de récupérer fichier par fichier et de placer le contenu dans une table. Sachant que les donnée dans les fichiers texte on la forme : nom;prenom,adresse;etc...

Comment je peux faire pour récupéré mes fichiers ??

Cordialement,


Spoof

Mammouth du PHP | 693 Messages

26 juin 2007, 22:22

Avant de mettre des formulaire, essaye de faire un script qui charge un fichier. Tu aura ensuite l'occasion d'améliré le code pour faire un formlaire. Ensite, la requete dans ton script n'est pas la même que celle que tu avais donnée. Ca m'étonnerai donc que ca marche.

ViPHP
ViPHP | 5924 Messages

26 juin 2007, 23:45

On n'assigne pas avec ':' mais avec '=' ...
Ensuite, quand ce sont des chaines, on les quotes avec ca : '
Et enfin je ne vois pas le mal à préciser les identifiants de connexion si jamais on fait attention aux logins du ftp et que ceux ci ne puissent pas être récupérés. Les identifiants par défaut sont souvent l'utilisateur 'root' et pour mot de passe une chaine vide.

Mammouth du PHP | 693 Messages

26 juin 2007, 23:53

Oups, je croyais qu'il avait mis ses identifients sur le forum, toutes mes excuses :oops:

Sinon, pour les chaine, on peut utiliser les guillement, mais on perd un peu de performence car lors de l'execution du code, les chaines délimité avec des guillemets sont analyé pour détecter les variable. A ce niveau, je pense que le gain de preformance est infime
Modifié en dernier par orgerix le 26 juin 2007, 23:57, modifié 1 fois.

ViPHP
ViPHP | 5924 Messages

26 juin 2007, 23:57

Oups, je croyais qu'il avait mis ses identifients sur le forum
Ah ok, tu voulais dire mettre les identifiants sur le forum, je t'avais mal entendu. En effet, si c'était un hébergement en ligne, ce serait pas de ouf de les mettre, mais en même temps la majorité des serveurs SQL des hébergeurs sont inaccessibles d'autre part que des serveurs de l'hébergeur...

Mammouth du PHP | 693 Messages

26 juin 2007, 23:59

Pas mal de serveurs propose PhpMyAdmin non ? Dans ce cas, c'est une simple page web avec identification HTTP ?

ViPHP
ViPHP | 5924 Messages

27 juin 2007, 00:00

ouais, dans le cas où les identifiants PHPMyAdmin sont les mêmes que les identifiants de connexion à la base de données...

spoof
Invité n'ayant pas de compte PHPfrance

27 juin 2007, 10:56

Bonjour et merci pour vos réponces!

Pourriez me montrer un exemple de Code afin d'utiliser cette fonction d'import de fichier dans la base MySQL svp.

Je n'arrive à rien là .

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

27 juin 2007, 12:16

Nan, nous ne sommes pas là pour te donner le code tout près mais pour t'aider à y arriver ;)

Postes-nous ton code actuel et les éventuelles erreurs ainsi que ce que tu ne comprend pas
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Invité
Invité n'ayant pas de compte PHPfrance

27 juin 2007, 12:43

re :))

voilà mon code :
<?php

/*declaration variables*/  
$user="root";           
$passwd="";  
$host="localhost";   
$bdd="test";  
          
// D'abord, on se connecte à MySQL  Ici pas pb
mysql_connect("$host", "$user", "$passwd") or die("erreur de connexion serveur");  
mysql_select_db("$bdd") or die("erreur de connexion Bdd");  

//requete sql <--- ICI PROBLEME
mysql_query("LOAD DATA LOCAL INFILE "test.txt" INTO TABLE test (id,nom,prenom);") or die ("pb envoi fichier");        
       

// On se déconnecte de MySQL  
mysql_close();  

?>
J'ai créé un Base Mysql TEST avec une table test comportant trois champs id, nom, prenom.
lorsque j'execute ce script j'obtiens mon message "pb envoi fichier".

1er Test sans spécifier les collonne, mais tjs meme pb:
mysql_query("LOAD DATA LOCAL INFILE "test.txt" INTO TABLE test;") or die ("pb envoi fichier"); 
2eme test en ajoutant les attribut! tjs meme pb:
mysql_query("LOAD DATA LOCAL INFILE "test.txt" INTO TABLE test
FIELDS 									
TERMINATED BY ';' 							
ENCLOSED BY ‘”’ 							
ESCAPED BY '\\' 							
LINES 
STARTING BY '' 						
TERMINATED BY '\n' 							
;") or die ("pb envoi fichier");
Que dois faire SVP ...

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

27 juin 2007, 12:58

Que dois faire SVP ...
Déjà, pensez à utiliser les balises [ php] :lol:

Sinon, pour nous aider à comprendre, il nous un message d'erreur plus explicite.
Tu peux afficher l'erreur précise en mettant mysql_error() dans le die :
... or die ( "pb envoi fichier : " . mysql_error() );
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

spoof
Invité n'ayant pas de compte PHPfrance

27 juin 2007, 13:18

voici l'erreur:

Parse error: parse error, unexpected T_STRING in C:\Program Files\EasyPHP 2.0b1\www\index.php on line 14

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

27 juin 2007, 13:46

euh non, ça c'est une erreur PHP à la ligne 14 du fichier ... :/
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer