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

Fermé
maxireussite Messages postés 372 Date d'inscription jeudi 10 mai 2007 Statut Membre Dernière intervention 11 mars 2020 - Modifié le 8 janv. 2018 à 17:07
maxireussite Messages postés 372 Date d'inscription jeudi 10 mai 2007 Statut Membre Dernière intervention 11 mars 2020 - 2 mars 2018 à 00:01
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 = YYYYY@yahoo.fr


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.



A voir également:

8 réponses

jordane45 Messages postés 38370 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 5 janvier 2025 4 722
8 janv. 2018 à 19:36
Bonjour

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

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

.
0
maxireussite Messages postés 372 Date d'inscription jeudi 10 mai 2007 Statut Membre Dernière intervention 11 mars 2020 5
Modifié le 9 janv. 2018 à 22:31
Bjr,
MErci, mais pas assez fortiche pour piger ce tuto.
Je souhaiterais qque chose de plus à ma portée.
0
jordane45 Messages postés 38370 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 5 janvier 2025 4 722
Modifié le 9 janv. 2018 à 22:30
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...
0
maxireussite Messages postés 372 Date d'inscription jeudi 10 mai 2007 Statut Membre Dernière intervention 11 mars 2020 5
9 janv. 2018 à 22:36
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 :)...
0
jordane45 Messages postés 38370 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 5 janvier 2025 4 722
9 janv. 2018 à 22:41
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 ?
0
maxireussite Messages postés 372 Date d'inscription jeudi 10 mai 2007 Statut Membre Dernière intervention 11 mars 2020 5
9 janv. 2018 à 22:45
Boucles, ARRAY ? non.
0
jordane45 Messages postés 38370 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 5 janvier 2025 4 722 > maxireussite Messages postés 372 Date d'inscription jeudi 10 mai 2007 Statut Membre Dernière intervention 11 mars 2020
9 janv. 2018 à 22:58
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..
0
maxireussite Messages postés 372 Date d'inscription jeudi 10 mai 2007 Statut Membre Dernière intervention 11 mars 2020 5
Modifié le 9 janv. 2018 à 23:09
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.
0
jordane45 Messages postés 38370 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 5 janvier 2025 4 722
9 janv. 2018 à 23:09
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 ...
0
maxireussite Messages postés 372 Date d'inscription jeudi 10 mai 2007 Statut Membre Dernière intervention 11 mars 2020 5
12 janv. 2018 à 03:07
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jordane45 Messages postés 38370 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 5 janvier 2025 4 722
12 janv. 2018 à 09:54
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 ???





0
maxireussite Messages postés 372 Date d'inscription jeudi 10 mai 2007 Statut Membre Dernière intervention 11 mars 2020 5
Modifié le 12 janv. 2018 à 14:08
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.
0
maxireussite Messages postés 372 Date d'inscription jeudi 10 mai 2007 Statut Membre Dernière intervention 11 mars 2020 5
1 mars 2018 à 01:23
Bsr,

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

0
jordane45 Messages postés 38370 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 5 janvier 2025 4 722
1 mars 2018 à 01:40
Tu es sous quelle version de php ?
0
maxireussite Messages postés 372 Date d'inscription jeudi 10 mai 2007 Statut Membre Dernière intervention 11 mars 2020 5
1 mars 2018 à 02:09
5.5.12
0
jordane45 Messages postés 38370 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 5 janvier 2025 4 722
1 mars 2018 à 22:38
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
0
maxireussite Messages postés 372 Date d'inscription jeudi 10 mai 2007 Statut Membre Dernière intervention 11 mars 2020 5
Modifié le 2 mars 2018 à 00:05
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 :

0