Bonjour à tous,

Je dois sauvé deux variable dans ma base de donnée.
Le premier est
Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
$collection['geometry']['type'];
echo $collection['geometry']['type']
// affiche : polygon

Le deuxième c'est un array qui contient des coordonée GPS et qui sont les points du polygon
Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
$collection['geometry']['coordinates'][0]
[
[-1.1370849609375002,52.13011607781289],
[-0.9338378906250001,51.64870258356996],
[-0.24169921875000003,52.16382422414709],
[-1.1370849609375002,52.13011607781289]
]
si je fais un foreach, j'ai ceci
Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
foreach($collection['geometry']['coordinates'][0] as $k => $coordinates)
	{
		echo "[".$coordinates[0].",".$coordinates[1]."],";
	}
[-1.1370849609375002,52.13011607781289],
[-0.9338378906250001,51.64870258356996],
[-0.24169921875000003,52.16382422414709],
[-1.1370849609375002,52.13011607781289,
Voilà, le truc c'est que dans ma base de donnée je dois avoir ce text
[[-1.1370849609375002,52.13011607781289],[-0.9338378906250001,51.64870258356996],[-0.24169921875000003,52.16382422414709], [-1.1370849609375002,52.13011607781289]]
Ce qui équivaudrait à faire ceci:
Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
echo "[";
foreach($collection['geometry']['coordinates'][0] as $k => $coordinates)
	{
		echo "[".$coordinates[0].",".$coordinates[1]."],";
	}
echo "[";
A savoir que ci-dessus, il y aura un problème avec une virgule de trop, lors du dernier passe dans la boucle.

Je me demandais s'il n'y avait pas une fonction qui me permetrait de traiter ceci

Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
$collection['geometry']['coordinates'][0]
pour avoir ce texte à enregistrer
[[-1.1370849609375002,52.13011607781289],[-0.9338378906250001,51.64870258356996],[-0.24169921875000003,52.16382422414709], [-1.1370849609375002,52.13011607781289]]
[/QUOTE]
sans avoir à bricoler a loop foreach.

Voci mon code en entier
Code PHP : 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
<?php
	include_once('db_config.inc.php');
 
	$cfg_db_host = $host;
	$cfg_db_db = $base;
	$cfg_db_user = $user;
	$cfg_db_password = $password;
 
 
	if(!isset($_POST['data'])) {
		json_encode(array("Error"=>'saveGeofencesssss', "msg" => "No Data" ));
	}else
	{
		$data = $_POST['data'];
	}
 
	$collection = json_decode($data,true);
 
 
	/*
	echo $collection['geometry']['type'];
	echo "|";

	foreach($collection['geometry']['coordinates'][0] as $k => $coordinates)
	{
		echo "[".$coordinates[0].",".$coordinates[1]."],";
	}

*/
	try{
 
 	   $conn = new PDO('mysql:host='.$cfg_db_host.';charset=utf8;dbname='.$cfg_db_db, $cfg_db_user , $cfg_db_password);
 
 
	}
	catch (Exception   $e){echo json_encode(array("retour"=>'Erreur de connexion à la bdd', "e" => $e )); die();}
 
	try{
 
		$req = $conn->prepare('INSERT INTO geofences(devise_id, type, coordinates) VALUES(:devise_id, :type, :coordinates)');
		$req->execute(array(
 
		    'devise_id' => 1,
    		'type' => $collection['geometry']['type'],
    		'coordinates' => $collection['geometry']['coordinates'][0] // Ici il faudrait avoir le contenu et la tructure en text comme ceci:
//'coordinate'=>'[[-1.1370849609375002,52.13011607781289],[-0.9338378906250001,51.64870258356996],[-0.24169921875000003,52.16382422414709], [-1.1370849609375002,52.13011607781289]]'
    	));
    	$count = $req->rowCount();
 
	}
  	catch (Exception   $e){echo json_encode(array("retour"=>'Erreurrrr update saveGeofences', "e" => $e )); die();}
 
 
	echo json_encode($count);
 
?>
voyez-vous?