0

フォームから mysql データベースに値を挿入しようとしています。単一値フォーム + フォームからの配列値があります。単一のフォーム値をすべての行に添付して、データベースに配列値を挿入するにはどうすればよいですか?

HTML:

Start:<br>
    <input type="text" name="start" id="start">

End:<br>
    <input type="text" name="end" id="end">

<input type="text" name="item[]" placeholder="Manufacturer #" /><br>

    <input type="text" name="description[]" placeholder="Description" /><br>

    <input type="text" name="item[]" placeholder="Manufacturer #" /><br>

    <input type="text" name="description[]" placeholder="Description" /><br>

    <input type="text" name="item[]" placeholder="Manufacturer #" /><br>

    <input type="text" name="description[]" placeholder="Description" /><br>

PHP:

if (isset($_POST['submit']))
            {
                $link = mysql_connect('localhost',     'user', 'pass');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db("mydb") or die(mysql_error());
echo 'Connected successfully';

$query = "INSERT INTO agreement (start, end, item_number, item_description) VALUES ";
foreach($_POST['item'] as $i => $item) 
{ 
  // Get values from post.
  $item = mysql_real_escape_string($item);
  $description = mysql_real_escape_string($_POST['description'][$i]);
  $start = mysql_real_escape_string($_POST['start'][$i]);
  $end = mysql_real_escape_string($_POST['end'][$i]);

  // Add to database
  $query = $query." ('$start','$end','$item','$description') ,";
}
$query = substr($query,0,-1); //remove last char
$result = mysql_query($query);
            }

コードを mysqli/pdo に変更します。現在のコードが安全でないことはわかっています。

どんな助けでも大歓迎です、ありがとう!

4

1 に答える 1

2

毎回同じになるため、配列アクセスなし$_POST['start']で andを使用するだけです。$_POST['end']アイテムと説明には配列アクセスを使用できます。

于 2013-04-21T23:10:07.580 に答える