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]si je fais un foreach, j'ai ceci[
[-1.1370849609375002,52.13011607781289],
[-0.9338378906250001,51.64870258356996],
[-0.24169921875000003,52.16382422414709],
[-1.1370849609375002,52.13011607781289]
]
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]."],"; }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:[[-1.1370849609375002,52.13011607781289],[-0.9338378906250001,51.64870258356996],[-0.24169921875000003,52.16382422414709], [-1.1370849609375002,52.13011607781289]]
A savoir que ci-dessus, il y aura un problème avec une virgule de trop, lors du dernier passe dans la boucle.
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 "[";
Je me demandais s'il n'y avait pas une fonction qui me permetrait de traiter ceci
pour avoir ce texte à enregistrer
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]]
[/QUOTE]
sans avoir à bricoler a loop foreach.
Voci mon code en entier
voyez-vous?
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); ?>
Partager