2015-05-24 81 views
1

我有4行需要插入數據庫如果他們不是空的。 但我不能讓它工作。插入多行但不是空字段

這種×4次

<select class="form-control" id="masura" name="masura[]"> 
<option value='' > -- </option> 
<option value='XS' > XS </option> 
</select> 
<input type="text" class="form-control" id="stoc" name="stoc[]" > 

和這個PHP

$row_data = array(); 
foreach($_POST['stoc'] as $row=>$stoc) { 
    $stoc=mysqli_real_escape_string($link,$stoc); 
    $masura=mysqli_real_escape_string($link,($_POST['masura'][$row])); 
    $row_data[] = "('$masura', '$stoc' , '$dirName')"; 
} 

if (!empty($row_data)) { 
    $sql = 'INSERT INTO stoc (masura, stoc, prodid) VALUES '.implode 

    (',', $row_data); 
    $result = mysqli_query($link, $sql); 
} 

的問題是,它也將插入空字段(如果我只輸入1場,它會插入領域與其他3把那些空)

感謝

+0

'$ row_data'永遠不會爲空。你需要檢查'$ stoc'和'$ _POST ['masura'] [$ row]'是否爲空,然後將它們放入'$ row_data'中。 – Federkun

回答

0

空字段不添加到$row_data

foreach($_POST['stoc'] as $row=>$stoc) { 
    if (empty($stoc) || empty($_POST['masura'][$row])) { 
     // Skip if either field is empty 
     continue; 
    } 
    $stoc=mysqli_real_escape_string($link,$stoc); 
    $masura=mysqli_real_escape_string($link,($_POST['masura'][$row])); 
    $row_data[] = "('$masura', '$stoc' , '$dirName')"; 
} 
+0

由於我得到空白屏幕(語法錯誤,意外'{ ')在第二排 – learning

+0

對不起,省略了括號。 – Barmar

+0

當我在這裏編輯時,所有的時間都會發生,因爲SO編輯器不會進行括號平衡。如果您沒有使用突出顯示此類問題的IDE,則應該這樣做。 – Barmar