1

私は同じ名前のテキスト フィールド列を持つ以下のようなフォームを持っています。この下のフォームを使用して、複数の配列データを mysql に挿入したいと考えています。plsはphp mysqlでforeachを使用してこれを行う方法を教えてください

最初の列

<input  name="date[]" type="text" class="datepicker">
<input type="text" name="local[]" />
<input type="text" name="desc[]" />
<input type="text" name="ta[]" />
<input type="text" name="car[]" />

2列目

<input  name="date[]" type="text" class="datepicker">
<input type="text" name="local[]" />
<input type="text" name="desc[]" />
<input type="text" name="ta[]" />
<input type="text" name="car[]" />
4

2 に答える 2

2

まず、フォーム フィールドの名前を変更して、これを簡単にします。

<?php
$number_of_columns = 2;
for($i=0;$i<$number_of_columns;$i++) :?>
    <input  name="col[<?=$i?>][date]" type="text" class="datepicker">
    <input type="text" name="col[<?=$i?>][local]" />
    <input type="text" name="col[<?=$i?>][desc]" />
    <input type="text" name="col[<?=$i?>][ta]" />
    <input type="text" name="col[<?=$i?>][car]" />
<?php endfor;?>

データを取得したら、$_POST['col']配列をループして、それぞれをデータベースに個別に挿入できます。ここでは、既にデータベースに接続しており、mysql ライブラリを使用していると想定しています。

$cols = $_POST['col'];
$table = 'table_name';
foreach($cols as $col) {
    $local = mysql_real_escape_string($col['local']);
    $desc = mysql_real_escape_string($col['desc']);
    $ta = mysql_real_escape_string($col['ta']);
    $car = mysql_real_escape_string($col['car']);
    mysql_query("INSERT INTO `{$table}` (`local`, `desc`, `ta`, `car`) VALUES('{$local}', '{$desc}', '{$ta}', '{$car}')") or die(mysql_error());
}
于 2013-04-25T05:14:29.610 に答える
0

このコードを試してください:

extract($_POST);
$n = count($date);
for ($i = 0; $i < n; $i++) {
    $query = 'INSERT INTO `table` (`c1`, `c2`, `c3`, `c4`, `c5`) VALUES (\'' . $date[$i] . '\', \'' . $local[$i] . '\', \'' . $desc[$i] . '\', \'' . $ta[$i] . '\', \'' . $car[$i] . '\')';
    // Here you must execute your query
}
于 2013-04-25T05:14:13.717 に答える