2016-09-05 2 views
0

Итак, скажем, у меня есть неопределенное количество выбранных строк в моей базе данных. Я использовал цикл while, поэтому область ввода продолжает увеличиваться. Мой вопрос: как я могу вставлять в свою базу данных, не зная, сколько значений нужно вставить? Должен ли я использовать какой-то цикл?Вставить в базу данных с неизвестным количеством текстов типа ввода php

<form method = "POST" action = "save.php"> 

while($row = mysqli_fetch_assoc($result)){ 

<input type = "text" name="txtname"> 

} 

<input type="submit" name="btnsubmit" value = "Save"> 
</form> 

ответ

1

В большинстве случаев вставляя несколько записей с помощью одного оператора Insert гораздо быстрее, чем MySQL вставки записей для/Еогеаспа цикла в PHP.

Предположим, что $ column1 и $ column2 являются массивами с одинаковыми размерами, размещенными в форме html.

Вы можете создать свой запрос, как это:

<?php 
    $query = 'INSERT INTO TABLE (`column1`, `column2`) VALUES '; 
    $query_parts = array(); 
    for($x=0; $x<count($column1); $x++){ 
     $query_parts[] = "('" . $column1[$x] . "', '" . $column2[$x] . "')"; 
    } 
    echo $query .= implode(',', $query_parts); 
?> 

Если данные размещены для двух записей запрос будет:

INSERT INTO TABLE (column1, column2) VALUES ('данные' , 'data'), ('data', 'data')

+0

Что я должен заменить «$ column1»? имя типа ввода? for ($ x = 0; $ x Mat

+0

да будет несколько значений, поэтому $ column1 будет заменяться переменной значения типа ввода –

+0

Это отчаянно требует правильного выполнения SQL-экранирования. Вы не можете просто вставлять материал в запрос и считаете, что кавычки достаточно хороши. – tadman

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