Bonjour,
J'ai un data json et j'enregistre les données dans MySql (chaque produit dans une ligne) par la requête préparée (PDO::prepare) :
Voilà, ce que j'obtiens dans ma table :
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
80
81
82
83
84 $menuData = '{ "menu": { "id": "pd1", "quand": "petit_dejeuner", "ecole": "secondaire", "quoi": { "menuitem": [ { "boisson": "lait", "bol": "cereale" }, { "boisson": "the", "bol": "fruits" }, { "boisson": "jus", "bol": "yogourt" } ] } } }'; $menuData_decode = json_decode($menuData); $menu_id = $menuData_decode->menu->id; $menu_quand = $menuData_decode->menu->quand; $menu_ecole = $menuData_decode->menu->ecole; //echo $menu_ecole; $conteur_menuitem = count($menuData_decode->menu->quoi->menuitem); $i = 0; while ($i < $conteur_menuitem) { try { foreach ($menuData_decode->menu->quoi->menuitem as $valueObj) { $boisson = $valueObj->boisson; $bol = $valueObj->bol; $stmt = $bdd->prepare("INSERT INTO $menu_test_curl_table ( $fld_mysql_field_menu_id, $fld_mysql_field_quand, $fld_mysql_field_ecole, $fld_mysql_field_boisson, $fld_mysql_field_bol ) VALUES ( :field_menu_id, :field_quand, :field_ecole, :field_boisson, :field_bol ) "); $stmt->execute(array ( ':field_menu_id'=>$menu_id, ':field_quand'=>$menu_quand, ':field_ecole'=>$menu_ecole, ':field_boisson'=>$boisson, ':field_bol'=>$bol ) ); $i++; } } catch(Exception $e) { throw $e; } }Tout va bien jusqu'au ici.(1, 'pd1', 'petit_dejeuner', 'secondaire', 'lait', 'cereale', '2015-09-29 15:26:47', '2015-09-29 15:26:47'),
(2, 'pd1', 'petit_dejeuner', 'secondaire', 'the', 'fruits', '2015-09-29 15:26:47', '2015-09-29 15:26:47'),
(3, 'pd1', 'petit_dejeuner', 'secondaire', 'jus', 'yogourt', '2015-09-29 15:26:47', '2015-09-29 15:26:47');
Ensuite, j'aimerais bien envoyer cela dans un web service en plusieurs fois (dans ce cas-ci, trois fois puisqu'il y a 3 menus).
J'ajoute le code suivant avant [Si++] juste après ma requête :
Mais évidemment, il y a un seul envoi (un seul string) :
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 $stmt->execute(array ( ':field_menu_id'=>$menu_id, ':field_quand'=>$menu_quand, ':field_ecole'=>$menu_ecole, ':field_boisson'=>$boisson, ':field_bol'=>$bol ) ); $contenu_curl = ' "'. $menu_id. '","'. $menu_quand. '","'. $menu_ecole. '","'. $boisson. '","'. $bol. '","'; $curl_wb_srvc = curl_init(); curl_setopt($curl_wb_srvc, CURLOPT_URL, $url); curl_setopt($curl_wb_srvc, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl_wb_srvc, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl_wb_srvc, CURLOPT_POST, true); curl_setopt($curl_wb_srvc,CURLOPT_POSTFIELDS, $contenu_curl); $resp = curl_exec($curl_wb_srvc); curl_close($curl_wb_srvc); $i++;
Que je dois faire pour qu'il y ait plusieurs envois comme cela :"pd1","petit_dejeuner","secondaire","lait","cereale"," "pd1","petit_dejeuner","secondaire","the","fruits"," "pd1","petit_dejeuner","secondaire","jus","yogourt","
Voici la totalité de mon code :"pd1","petit_dejeuner","secondaire","lait","cereale","
"pd1","petit_dejeuner","secondaire","the","fruits","
"pd1","petit_dejeuner","secondaire","jus","yogourt","Comment puis-je les envoyer à un web service pour que chaque produit soit envoyé par un autre string comme ma requête MySql ?
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106 try { $bdd = new PDO($dsn, $user, $password, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)); } catch (Exception $e) { die('Erreur : ' . $e->getMessage()); } $menuData = '{ "menu": { "id": "pd1", "quand": "petit_dejeuner", "ecole": "secondaire", "quoi": { "menuitem": [ { "boisson": "lait", "bol": "cereale" }, { "boisson": "the", "bol": "fruits" }, { "boisson": "jus", "bol": "yogourt" } ] } } }'; $menuData_decode = json_decode($menuData); $menu_id = $menuData_decode->menu->id; $menu_quand = $menuData_decode->menu->quand; $menu_ecole = $menuData_decode->menu->ecole; //echo $menu_ecole; $conteur_menuitem = count($menuData_decode->menu->quoi->menuitem); $i = 0; while ($i < $conteur_menuitem) { try { foreach ($menuData_decode->menu->quoi->menuitem as $valueObj) { $boisson = $valueObj->boisson; $bol = $valueObj->bol; $stmt = $bdd->prepare("INSERT INTO $menu_test_curl_table ( $fld_mysql_field_menu_id, $fld_mysql_field_quand, $fld_mysql_field_ecole, $fld_mysql_field_boisson, $fld_mysql_field_bol ) VALUES ( :field_menu_id, :field_quand, :field_ecole, :field_boisson, :field_bol ) "); $stmt->execute(array ( ':field_menu_id'=>$menu_id, ':field_quand'=>$menu_quand, ':field_ecole'=>$menu_ecole, ':field_boisson'=>$boisson, ':field_bol'=>$bol ) ); $contenu_curl = ' "'. $menu_id. '","'. $menu_quand. '","'. $menu_ecole. '","'. $boisson. '","'. $bol. '","'; $curl_wb_srvc = curl_init(); curl_setopt($curl_wb_srvc, CURLOPT_URL, $url); curl_setopt($curl_wb_srvc, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl_wb_srvc, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl_wb_srvc, CURLOPT_POST, true); curl_setopt($curl_wb_srvc,CURLOPT_POSTFIELDS, $contenu_curl); $resp = curl_exec($curl_wb_srvc); curl_close($curl_wb_srvc); $i++; } } catch(Exception $e) { throw $e; } }
Merci
Partager