Comment insérer fichiers textes et leurs données dans Mysql ? - Forum PHP

Comment insérer fichiers textes et leurs données dans Mysql ? Fichier texte --> Base de données (Résolu) » Forum - Webmaster Inserer fichier texte word » Forum - Word Inserer fichier texte automatique sous excel » Forum - Programmation Fichier texte --> Base de données » Forum - Programmation Inserer fichier texte dans un fichier[RESOLU] » Forum - Linux / Unix

Bonjour,

Sur mon site marchand les commandes sont stockées dans des fichiers texte : 1 commande = un fichiers .txt

Chaque fichier .txt contient des infos du type :

[COMMANDE]
Numéro de commande = 160D6482E38
Type de paiement = Paiement par carte bancaire ou compte PayPal®
Langue = fr
Articles = 1
Montant du panier = 15
Frais de port = 0
Sous-total = 15
TOTAL = 15

[DETAILS]
1_Code = 1-001
1_Nom = Extrait K-Bis (111111111)
1_Quantité = 1
1_Prix = 15
1_TWRef = Xs4BVa

[LIVRAISON]
société = SCI XXXXX
titre = M.
prénom = XXXX
nom = XXXXXXXXXXX
adresse1 = XXXXXXXXX
adresse2 = VVVVVVVVVVVVVV
ville = VVVVVVVVVVVVV
code postal = 00000
téléphone = 068400000
email = [email protected]


Question simple : avec quel script je peux récupérer les fichiers et insérer leurs contenus dans une bdd ?

Merci de votre aide.

cdlt.



Forum

Comment insérer fichiers textes et leurs données dans Mysql ? Fichier texte --> Base de données (Résolu) » Forum - Webmaster Inserer fichier texte word » Forum - Word Inserer fichier texte automatique sous excel » Forum - Programmation Fichier texte --> Base de données » Forum - Programmation Inserer fichier texte dans un fichier[RESOLU] » Forum - Linux / Unix

Web: www.shapebootstrap.net

20 réponses

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

Bonjour

Pour ton cas.. lecture de fichiers formatés comme des fichiers ini

http://php.net/manual/fr/function.parse-ini-file.php

.

Reply

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

Bjr,
MErci, mais pas assez fortiche pour piger ce tuto.
Je souhaiterais qque chose de plus à ma portée.

Reply
réponses:
  • jordane45

    Que sais tu faire ?
    Tu sais faire des requêtes INSERT en SQL ?
    Tu sais exécuter les requêtes depuis le PHP ? avec quoi pdo ou mysqli ?
    Tu sais faire des boucles en php (pour parcourir tes fichiers ) ?
    Tu sais ce qu'est un ARRAY (en php) et comment on le manipule ??


    Tu as testé l'exemple ??

     // Analyse avec sections $tonFichierALire = "chemin/vers/un/de/tes/fichiers"; $ini_array = parse_ini_file($tonFichierALire, true); print_r($ini_array); 



    Et pour finir .. qu'as tu déjà essayé de faire ????
    Car ici on aide à réaliser le code.. mais on ne fournit pas de code sur mesure...

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

Bonnes questions !

Alors que je commencais à me sentir à l'aise avec Mysql, me voici obligé à tout revoir avec Mysqli...
Donc, Je sais avec Mysqli, me connecter à une base de données et dans les tables insérer des données, les modifier etc...

Je découvre l'existence des fichiers... .txt :)...

Reply
réponses:
  • auteur

  • jordane45

    Donc tu as répondu à la méthode utilisée pour te connecter à la bdd : Mysqli OK
    Tu as indiqué que tu savais faire des requêtes SQL .. OK

    Et les autres questions ?

  • maxireussite

    Boucles, ARRAY ? non.

  • jordane45

    Dans ce cas tu dois commencer par apprendre les bases de la programmation ....
    Sans un minimum de connaissances.. il te sera difficile de coder quoi que ce soit.
    Tu trouveras sans mal sur internet des tutos sur les ARRAY et sur les BOUCLES.

    Bon apprentissage..

  • maxireussite

    Vous me fatiguez sur "comment ça marche". J'ai 54 ans et je ne vais pas me mettre à apprendre à coder ou la théorie...
    J'aime découvrir et trifouiller par la pratique... et selon mes besoins immédiats.

    Merci quand même je vais chercher où il faut pas déjà être ingénieur pour être aidé.

    cdlt.

  • jordane45

    J'ai 54 ans et je ne vais pas me mettre à apprendre à coder ou la théorie...

    Merci quand même je vais chercher où il faut pas déjà être ingénieur pour être aidé.

    Comme déjà dit .. on veut bien AIDER .. mais pas coder à ta place.

    Si tu n'es pas capable de suivre cette simple règle... oui.. je t'en prie.. va voir ailleurs si l'herbe est plus verte.

    Après... si tu veux qu'on le code à ta place... je peux toujours t'indiquer mon RIB ...

  • maxireussite

    Eh oui, quand on a besoin d'être aidé, on attend pas qu'on vienne nous donner des leçons.

    Depuis 2013, je suis parti de moins zéro, et j'ai déjà bcp appris, je ne suis pas étudiant en informatique pour passer du temps avec la théorie... Je préfre l'apprentissage par l'exemple.

    Je suis ok pour le RIB, si c'est la seule façon de m'aider. Comment fais-je pour communiquer mon mail ?

  • jordane45

    :-)

    Tu veux apprendre par l'exemple.. pas de soucis.
    Voici déjà de quoi savoir ce qu'est un array et comment le manipuler :
    http://php.net/manual/fr/language.types.array.php


    Ensuite :

    Lister les fichiers d'un répertoire :
    http://php.net/manual/fr/function.scandir.php
    => Ca te donne la liste des fichiers dans un array


    Boucler sur un Array avec un foreach
    http://php.net/manual/fr/control-structures.foreach.php
    => Te permet de boucler sur chaque entrée de l'array

    Lire tes fichiers (qui sont sous la forme de fichiers ini)
    http://php.net/manual/fr/function.parse-ini-file.php
    => Ca te stocke les données de ton fichier dans un array

    Faire une requête en mysqli (que tu sais déjà faire)
    http://php.net/manual/fr/mysqli.query.php

    Insérer des données dans une bdd :
    http://sql.sh/cours/insert-into
    Mettre à jour des données dans une BDD
    http://sql.sh/cours/update

    Donc voila .. même sans être développeur ni ingénieur... la lecture de ces quelques liens devraient te permettre de démarrer ton code.
    Si tu bloques à un moment ... reviens nous voir avec le code réalisé et nous verrons pour t'aider à le compléter.

  • maxireussite

    Merci bcp, je vois cela.
    cdlt.

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

Purée ! Jordane45 aurait voulu me dégouter de coder, il ne s'en serait pas mieux pris.

Des concepts théooriques complétement abscons (pour moi) Passer à la pratique avec cela... Merci du cadeau.

En gros c'était une façon polie de me virer de ton site :) MErci j'ai compris, je ne reviendrait plus vous importuner avec mes questions d'analphabète du codage.

Reply

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

Bon.. déjà ce n'est pas MON site...

Ensuite... à part te plaindre... on ne sait pas où tu en est ni sur quoi tu bloques EXACTEMENT.

Quoi qu'il en soit... vu que je suis quand même un minimum sympa ... voila voila... :

 <?php //------------------------------------------------// //Affichage des erreurs PHP //------------------------------------------------// error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE);  //------------------------------------------------// //Connexion à la bdd (je te laisse faire) //------------------------------------------------//       //------------------------------------------------// //Emplacement des fichiers text à traiter : //------------------------------------------------// $repertoireFichiersText = "";  //------------------------------------------------// //on récupère les fichiers //------------------------------------------------// $files = glob($repertoireFichiersText."*.txt");   //------------------------------------------------// //on boucle sur chaque fichier pour le traiter //------------------------------------------------// foreach($files as $file) { 	//------------------------------------------------// 	//j'affiche le nom du fichier traité : 	//------------------------------------------------// 	echo "<br>File : " .  $file; 		 	//------------------------------------------------// 	//Je reformate le fichier ini un peu mieux...	 	//------------------------------------------------// 	$content =  file_get_contents($file); 	$regex = '$= (.*?)\r\n?$i'; 	$remplace = '="$1"'.PHP_EOL; 	$formatedFile = preg_replace($regex, $remplace, $content); 	// Écrit le résultat dans un fichier temporaire 	file_put_contents('temp.ini', $formatedFile); 		 	//------------------------------------------------// 	//lecture du fichier temporaire -> on stocke les données dans un array 	//------------------------------------------------// 	$ini_array = parse_ini_file('temp.ini', true,INI_SCANNER_TYPED); 	 	 	//------------------------------------------------// 	//affichage du contenu de l'array 	//------------------------------------------------// 	if(!empty($ini_array)){ 		echo "<pre>"; 		print_r($ini_array); 		echo "</pre>"; 		 		//----------------------------------------// 		// ICI tu dois coder l'ajout en BDD 		//----------------------------------------// 		 		//... 		 		 	} // fin IF 	 } // Fin Boucle NEXT VALUE...  


Je te laisse :
- Ajouter la connexion à la bdd
- Faire l'insertion dans la BDD là où je t'ai mis les points de suspension.



Est-ce que cette fois ça te convient ???





Reply

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

En pédagogie, on adapte le sujet à l'individu. J'ai eu l'occasion d'aider des adultes à apprendre à lire; il n'était pas question de les renvooyer apprendre l'alphabet comme à des cp... l'urgent pour eux était d'apprendre par exemple à remplir un chèque ou un formulaire...

Honnêtement comment veux-tu que je passe des cours théoriques auxquels tu m'as renvoyés à la solution que tu viens de me proposer ?

Je te suis reconnaissant, là je sens que je vais pouvoir m'y coller et trouver à taton le bon script final.

Sincères remerciements.

Reply

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

Bsr,

Me revoilà donc. En testant ton script, j'ai ce message d'erreur :

Reply
réponses:
  • jordane45

    Tu es sous quelle version de php ?

  • maxireussite

    5.5.12

  • jordane45

    En regardant la documentation de la fonction qui te génère l'erreur... on voit que la constante INI_SCANER_TYPED est apparue en 5.6.1
    Dans ce cas... remplace la par INI_SCANNER_NORMAL

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

Super, merci. Mais ça ne marche qu'à moitié...
Pour deuxième fichier j'ai le message ci-dessous. J'ai tenté dy voir à la ligne 67,

$ini_array = parse_ini_file('temp.ini', true,INI_SCANNER_NORMAL);


mais rien qui vaille :

Reply

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed