Bonjour à tous !

Je dois faire un programme en php permettant d'extraire les données d'un fichier Excel et les rentrés dans differentes tables pré-construites d'une BDD PostgreSQL.

J'ai regarder pas mal de doc mais je n'ai pas réellement trouver des aides a mon probleme c'est pourquoi je post aujourd'hui.

J'ai tenter un code qui me permet de rentrer un fichier ".txt" dans la base mais ca ne me satisfait pas vraiment :s

J'aimerais avoir à éviter de passer par le ".txt" mais j'ai du mal à trouver par ou commencer.

Voici mon code pour le moment :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
 
<?php
 
	$nom_fichier="algo.txt"; 	// Nom du fichier a convertir
	$separateur="\t";			// Sigle de séparateur
 
		// Ouverture connection base SQL	
 
			Require("Util.php");
 
			$bd=new BD (NOM, PASSE, "import", SERVEUR, PORT);
 
				// Creation tableau d’affichage
				// Juste pour montrer que ca marche !
				Echo "<table border=1>";
 
					If(file_exists($nom_fichier))	// Si le fichier existe, on l’ouvre
						$fp=fopen($nom_fichier, "r");
 
					Else	// Sinon erreur
					{
						Echo  "Fichier introuvable<br>";
						Exit();
					}
 
					While (!feof($fp)) 			// On parcours le fichier
					{
						$ligne=fgets($fp,4096); // On se deplace d’un ligne
						$liste=explode($separateur,$ligne); // Champs séparés par une tabulation
 
						// Ici important	
							$col1=$liste[0];
							$col2=$liste[1];
							$col3=$liste[2];
							$col4=$liste[3];
							$col5=$liste[4];
							$col6=$liste[5];	
						// $coln correspond aux colonnes de la table créée auparavant
 
					If(trim($col1)!="")	// Si fin fichier
					{
						Echo "<tr>";	
					}
						// Important dans la base SQL
						$query="insert into fichier (col1, col2, col3, col4, col5, col6)";
						$query="values('$col1','$col2','$col3','$col4','$col5', $'col6')";
						$resul=pg_exec($query);
 
					If(!$resul)
					{
						Echo "Impossible d’ajouter";
					}
					Else
					{
						Echo "import…ok";
						Echo "</td>";
						Echo "</tr>";
					}
 
						Pg_close($bd);		// Ferme SQL
						Fclose($fp);		// Ferme fichier txt
 
				Echo "<table>";	// Fin du tableau
 
			Echo "Merci, importation terminée<br>";
?>
Un de mes gros souci est qu'il ne permet pas d'importer dans différentes tables mais dans une seule et cela pose le problème d'avoir plusieurs fois les mêmes mots dans la BDD.
Je bloque aussi sur le code qui permet d'inserer les données peu importe le nombre de lignes dans le fichier Excel :/

Merci de votre aide,
Yoite