Bonjour,

Je cherche à remplir ma base de données à partir d'un fichier txt. Ce fichier contient les coordonnées en latitude,longitude et une valeur d'humidité comprise entre 0 et 1.
Dans mon SGBD la table est la suivante : tbl_point : + id (SERIAL), +x_y (POINT), +teta (REAL)
Mon fichier texte est construit comme ceci : 50.686324,4.597381;0.21 sur plusieurs lignes.

je n'arrive pas à remplir ma table tbl_point avec les valeurs extraites du fichiers.
Pouvez vous regarder mon code et me dire ce qui bloc svp :
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
67
68
69
70
71
72
73
74
75
76
77
78
79
<?php
include('config.php');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <link href="<?php echo $design; ?>/style.css" rel="stylesheet" title="Style" />
		<link rel="shortcut icon" type="image/x-icon" href="plus.png" />
        <title>Ajouter un chantier</title>
    </head>
    <body>
 
	<!----------------------- Téléchargement du fichier de points ----------------------------->
<h4> 5ème étape : Téléchargement du fichier de points</h4>
	<form method="post" action="existant.php">
      <label for="point">Choisir le fichier de points à importer :</label>
	  <input type="file" name="point" id="point" /><br /><br/><br/>
	  <input type="submit" name="submit" value="Envoyer" />
	</form>
<?php
 
   //on définit le fichier txtque l'on va traiter
 
    $fichier = $_POST['point'];
 
    //on ouvre le fichier en lecture seulement, impossible de modifier le fichier 
    if (file_exists($fichier))
	{
		$fp = fopen("$fichier", "r"); 
    }
    else // le fichier n'existe pas 
	{ 
		echo "Fichier introuvable !<br />Importation stoppée."; 
		exit(); 
    } 
 
    while (!feof($fp)) 
	{ 
		//On lit une ligne tant qu'on a pas atteint la fin du fichier
		$ligne = fgetc($fp);  
		//On récupère les champs séparés par ; dans liste
		$liste = explode( ";",$ligne);  
		//On assigne les variables
		$coord = $liste[0];
		$humidite = $liste[1];
		$convert =pg_query("SELECT CAST(point,'$coord');");
		//On insère les valeurs dans la table Point
		$sql = "INSERT INTO point (x_y,teta,id_parcelle) VALUES('$convert','$humidite',60)"; 
		$result= pg_query($sql); 
 
		if(pg_last_error()) 
		{ 
			//On soulève les erreurs lors de la connexion a la base de données
			print "Erreur dans la base de données : ".pg_last_error(); 
			print "<br />Importation stoppée."; 
			exit(); 
		} 
		else 
		{
			//Tout va bien
			print "$coord | $humidite <br />";
			//On referme le fichier txt
			fclose($fp);
 
			echo '<br /><b>TABLE A JOUR ...</b><br />';
 
			//A la fin
			echo '<br /><b>O.K ! ALL DONE.</b><br />';
 
		}
	}
 
 
 
    ?>
 
	</body>
</html>
Les messages renvoyés sont les suivants :

Notice: Undefined offset: 1 in C:\Users\Madeleine\Desktop\test_liste_liee\existant.php on line 46 (correspond à la ligne $humidite = $liste[1];)
Warning: pg_query(): Query failed: ERREUR: erreur de syntaxe sur ou près de « , » LINE 1: SELECT CAST(point,'5'); ^ in C:\Users\Madeleine\Desktop\test_liste_liee\existant.php on line 47 (correspond à la ligne $convert =pg_query("SELECT CAST(point,'$coord');");)
Warning: pg_query(): Query failed: ERREUR: syntaxe en entrée invalide pour le type point : « » LINE 1: INSERT INTO point (x_y,teta,id_parcelle) VALUES('','',60) ^ in C:\Users\Madeleine\Desktop\test_liste_liee\existant.php on line 50
Erreur dans la base de données : ERREUR: syntaxe en entrée invalide pour le type point : « » LINE 1: INSERT INTO point (x_y,teta,id_parcelle) VALUES('','',60) ^
merci !