2016-07-06 140 views
0
foreach ($textAr as $BachelorsDegrees) 
{ 
foreach ($textArCert as $Certifications) 
{ 
foreach ($textArDip as $Diplomas) 
{ 
foreach ($textArAD as $AssociateDegrees) 
{ 
foreach ($textArMD as $MastersDegrees) 
{ 
foreach ($textArDD as $DoctorateDegrees) 
{ 
foreach ($textArSD as $SpecialDegreePrograms) 
{ 

什麼是最好的方式來使上述代碼的工作(這只是整個代碼的片段)?每個變量,例如$ BachelorsDegrees,都是HTML表單中的一個textarea框。我試圖從每個textarea框中插入值到單個行中的數據庫中。我得到它爲一個textarea框工作,但如何使它適用於多個textarea框?不同變量的多個foreach循環?

正在考慮做一個if else語句和一個INSERT和UPDATE sql語句,以便當一個foreach循環工作時,它會將數據插入數據庫,然後循環停止,然後else語句將進入下一個foreach循環和UPDATE查詢會更新下一列,而不是插入相同的產品。如果我做了多個INSERT查詢,我會爲每個變量創建更多的行,這是我不想要的。每個變量的值有更多的行,但實際變量的行不是。每個變量代表一列。

例如,

當從BachelorsDegrees textarea的值插入到了它的列中,下一個循環將運行(認證)到下一列。所以我認爲UPDATE查詢會很有效。這樣我在每一列中都沒有NULLS。

+0

你可以添加你的表定義?這些文本框是否相互依賴?據我所知,你不需要嵌套循環。只需編寫7個獨立的循環。或者你只是想避免多次寫入插入代碼?這就是上帝創造功能的原因。 – Solarflare

回答

0

如果您對所有字段相等數量的輸入(Bachelorsdegree,認證等),那麼你可以採取一個輸入字段的計數變成equation.e.g

$totalinputs=count($textAr); 
for($i=0;$i<$totalinputs;$i++){ 
    $bachelordegree=$textAr[$i]; 
    $certificate=$textArCert[$i]; 
    $diploma=$textArDip[$i]; 
    ..... 
    ..... 
    //use above stored variables to insert/update into  your respective table. 

}