回答編集履歴

2

追記

2016/11/27 00:35

投稿

popobot
popobot

スコア6586

test CHANGED
@@ -95,3 +95,99 @@
95
95
 
96
96
 
97
97
  余談ですが、カンマ区切りでデータをしまうよりそれぞれidとcountを別レコードに保存したほうが扱いやすいと思いました。
98
+
99
+
100
+
101
+ **(追記)**
102
+
103
+ それぞれ別のレコードにしまうなら、idでループさせればできますよ
104
+
105
+ 以下にサンプルコードを書いたので参考にしてください。
106
+
107
+ ポイントは、count側のnameをcounts[$id]とすることで、idと関連付けています。
108
+
109
+ idのvalueが4なら、countのnameはcounts[4]としています。
110
+
111
+ ```php
112
+
113
+ <form method="post" action="" >
114
+
115
+ <table>
116
+
117
+ <tr>
118
+
119
+ <td><input type="checkbox" name="ids[]" value="1" /></td>
120
+
121
+ <td>a1</td>
122
+
123
+ <td><input type="number" name="counts[1]" min="1" max="10" style="text-align:center;" /></td>
124
+
125
+ </tr>
126
+
127
+ <tr>
128
+
129
+ <td><input type="checkbox" name="ids[]" value="2" /></td>
130
+
131
+ <td>b2</td>
132
+
133
+ <td><input type="number" name="counts[2]" min="1" max="10" style="text-align:center;" /></td>
134
+
135
+ </tr>
136
+
137
+ <tr>
138
+
139
+ <td><input type="checkbox" name="ids[]" value="4" /></td>
140
+
141
+ <td>c4</td>
142
+
143
+ <td><input type="number" name="counts[4]" min="1" max="10" style="text-align:center;" /></td>
144
+
145
+ </tr>
146
+
147
+ </table>
148
+
149
+ <input type="submit" value="買い物かごに入れる">
150
+
151
+ </form>
152
+
153
+
154
+
155
+ <?php
156
+
157
+ if($_SERVER["REQUEST_METHOD"] == "POST") {
158
+
159
+ $ids=$_REQUEST['ids'];
160
+
161
+ $counts=$_REQUEST['counts'];
162
+
163
+ $pdo = new PDO("mysql:host=xxx; dbname=xxx; charset=utf8", "xxx", "xxx", array( PDO::ATTR_EMULATE_PREPARES => false ) );
164
+
165
+ $sql = <<< SQL
166
+
167
+ insert into list(id,count)
168
+
169
+ values(:id,:count)
170
+
171
+ SQL;
172
+
173
+ foreach($ids as $id) {
174
+
175
+ $condition = array(
176
+
177
+ ":id" =>$id,
178
+
179
+ ":count" => $counts[$id],
180
+
181
+ );
182
+
183
+ $statement = $pdo->prepare( $sql );
184
+
185
+ $result = $statement->execute( $condition );
186
+
187
+ }
188
+
189
+ }
190
+
191
+ ?>
192
+
193
+ ```

1

補足

2016/11/27 00:35

投稿

popobot
popobot

スコア6586

test CHANGED
@@ -91,3 +91,7 @@
91
91
  ?>
92
92
 
93
93
  ```
94
+
95
+
96
+
97
+ 余談ですが、カンマ区切りでデータをしまうよりそれぞれidとcountを別レコードに保存したほうが扱いやすいと思いました。