2015-05-24 2 views
1

У меня есть 4 строки, которые нужно вставить в db, если они НЕ ОШИБКИ. Но я не могу заставить его работать.Вставьте несколько строк, но не пустые поля

это й 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

Смежные вопросы