Re: [請益] 如何將表單中的陣列一次插入資料庫?

看板PHP作者 (獅子男)時間18年前 (2008/01/06 02:45), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串4/4 (看更多)
※ 引述《joaoko (joaoko)》之銘言: : 想了好久終於想出一個堪用的方法: : 我把10個欄位的名稱分別設定如下: : 尺寸 庫存 : ss1[size] ss1[stock] : ss2[size] ss2[stock] : ss3[size] ss3[stock] : ss4[size] ss4[stock] : ss5[size] ss5[stock] 如果是表單的話,那就更好處理了。 尺寸 庫存 ss[0][size] ss[0][stock] ss[1][size] ss[1][stock] ss[2][size] ss[2][stock] ss[3][size] ss[3][stock] ss[4][size] ss[4][stock] 這樣作會更漂亮,而且更具彈性。 表單中可以不只有 5 組資料, 也可以讓使用者用「增加」、「刪除」的功能來調整數量。 : 然後用廻圈讀出表單的資料再寫入資料庫: : for($i=1; $i<6; $i++){ : if(is_array($_POST["ss$i"])){ : $size = $_POST["ss$i"][size]; : $stock = $_POST["ss$i"][stock]; : if(!empty($size) and !empty($stock)){ //空白的欄位將不會寫入任何資料 : $link->query("INSERT INTO table2 (size, stock) VALUES ('$size', : '$stock')"); : } : } : } 如果用上面那種二階陣列的作法的話,就得改成這樣: if( is_array($_POST['ss']) ) { foreach ( $_POST['ss'] as $key => $array ) { if ( is_array($array) && !empty($array['size']) && !empty($array['stock']) ) { $size = addslashes($array['size']); $stock = addslashes($array['stock']); $link->query("INSERT INTO `table2` (`size`, `stock`) VALUES ('$size', '$stock')"); } } } -- Leo [joehorn]:~> make one lover for me make: don't know how to make one. Stop Leo [joehorn]:~> why? why?: No match. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.113.185.108

01/07 02:30, , 1F
謝謝獅子男大的指點,這正是我想要的寫法 ^^
01/07 02:30, 1F
文章代碼(AID): #17Vz0j7U (PHP)
文章代碼(AID): #17Vz0j7U (PHP)