doukuangxun5382 2013-09-17 05:53
浏览 105
已采纳

使用嵌套foreach的sql insert重复数据插入到表中

I tried inserting array of input fields with nested foreach.if i provide one value for one field it works fine but if i provide more than one field the inserting operation repeats for 8 times

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
  }

Input:

1.Make:cam model:mac serial:rak 2.Make:cam model:mac serial:dam

but the result obtained isoutput

  • 写回答

1条回答 默认 最新

  • dtz63853 2013-09-17 06:03
    关注

    Try:

    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);
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?