2016-09-05 13 views
0

これで、データベースに選択されていない行があります。 whileループを使用して、入力領域が増加し続けるようにしました。 私の質問は、挿入されるべき値の数を知らずにデータベースに挿入する方法です。私はある種のループを使うべきですか? 1つの挿入文で複数のレコードを挿入し、多くの場合入力タイプのテキストが不明なデータベースに挿入する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

はPHPで/ foreachループのためにレコードを挿入するよりも、MySQLでははるかに高速です。

$ 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); 
?> 

をデータが2つのレコードに掲載されている場合は、クエリになるでしょう:

INSERTをテーブルに(column1の、column2の)VALUES( 'データ' 、 'data')、( 'data'、 'data')

+0

"$ column1"をどのように置き換えるべきですか?入力タイプの名前? ($ x = 0; $ x Mat

+0

はい、複数の値がありますので、$ column1は入力タイプ値変数 –

+0

に置き換えられます。これは適切なSQLエスケープが必要です。あなたは質問の中で物事をチャックして、引用が十分に良いと思うことはできません。 – tadman

関連する問題