0

ネストされた foreach を使用して入力フィールドの配列を挿入しようとしました。1 つのフィールドに 1 つの値を指定すると正常に動作しますが、複数のフィールドを指定すると、挿入操作が 8 回繰り返されます。

PHP:

if ($_POST['fields']) {
  //get last inserted userid
  $inserted_user_id =mysql_insert_id(); 
  //Loop through added fields
  foreach ( $_POST['fields'] as $key=>$value ) {
    foreach ( $_POST['fields1'] as $key=>$value1 ) {
      foreach ( $_POST['fields2'] as $key=>$value2 ) {
        foreach ( $_POST['fields3'] as $key=>$value3 ) {
          $inserted_website_id = 1;
          //Insert into users_websites_link table
      $sql_users_website = sprintf("INSERT INTO users_websites_link 
        (UserID, CameraID,make, model ,serial,description2) VALUES
            ('%s','%s','%s','%s','%s','%s')",
            mysql_real_escape_string($inserted_user_id),
            mysql_real_escape_string($inserted_website_id),
            mysql_real_escape_string($value),
            mysql_real_escape_string($value1),
            mysql_real_escape_string($value2),
            mysql_real_escape_string($value3) );  
            $result_users_website = mysql_query($sql_users_website);
          }
        }
      }
    }
  }
  else {
    //No additional fields added by user
  }

入力:

1.Make:cam モデル:mac シリアル:rak 2.Make:cam モデル:mac シリアル:dam

しかし、得られた結果は出力

4

1 に答える 1

1

試す:

foreach ( $_POST['fields'] as $key=>$value ) {
    $value1 = $_POST['fields1'][$key];
    $value2 = $_POST['fields2'][$key];
    $value3 = $_POST['fields3'][$key];


    $inserted_website_id = 1;


    //Insert into users_websites_link table
    $sql_users_website = sprintf("INSERT INTO users_websites_link (UserID, CameraID,make, model ,serial,description2) VALUES ('%s','%s','%s','%s','%s','%s')",
                           mysql_real_escape_string($inserted_user_id),
                           mysql_real_escape_string($inserted_website_id),
                           mysql_real_escape_string($value),
                            mysql_real_escape_string($value1),
                            mysql_real_escape_string($value2),
                            mysql_real_escape_string($value3) );  
    $result_users_website = mysql_query($sql_users_website);
}
于 2013-09-17T06:03:35.110 に答える