phpMyAdmin
 sql >> Cơ Sở Dữ Liệu >  >> Database Tools >> phpMyAdmin

Làm cách nào để chèn mảng động vào cơ sở dữ liệu trong php?

Bạn cần di chuyển truy vấn của mình ra khỏi vòng lặp foreach. Đây là một cách để làm điều đó -

$Voltage = array();
$Duration = array();
$Number = array();

foreach($asma as $key => $value) 
{

   foreach ( $value as $ind => $hObject ) {
      $Voltage[] = $hObject->Voltage;
      $Duration[] = $hObject->Duration;
      $Number[] = $hObject->Number;               ,
   }

} // endforeach
$q = "INSERT INTO ga (fe, fe1, fe2,fe3,fe4,fe5,fe6,f7,f8, timestamp,username ) VALUES (%d, %d, %d,%d, %d, %d,%d, %d, %d, '%s' ,'$login_session')";
$qs = sprintf( $q, $Voltage[0],$Duration[0],$Number[0],
                   $Voltage[1],$Duration[1],$Number[1],
                   $Voltage[2],$Duration[2],$Number[2],
                   date("Y-m-d H:i:s") );
$result = mysql_query($qs);
if ( ! $result ) {
     die( 'Insert failed ' . mysql_errno() . ' ' . mysql_error() );                
}

chỉnh sửa

để thêm hàng thứ hai, bạn có thể thay đổi nó thành một cái gì đó như thế này (lưu ý, tôi không thấy bạn đang xác định vùng chọn cho 1/2 ở đâu, vì vậy tôi chỉ đặt $user_select ) -

$Voltage = array();
$Duration = array();
$Number = array();

foreach($asma as $key => $value) 
{

   foreach ( $value as $ind => $hObject ) {
      $Voltage[] = $hObject->Voltage;
      $Duration[] = $hObject->Duration;
      $Number[] = $hObject->Number;               ,
   }

} // endforeach
$q = "INSERT INTO ga (fe, fe1, fe2,fe3,fe4,fe5,fe6,f7,f8, timestamp,username ) VALUES (%d, %d, %d,%d, %d, %d,%d, %d, %d, '%s' ,'$login_session')";
$qs = sprintf( $q, $Voltage[0],$Duration[0],$Number[0],
                   $Voltage[1],$Duration[1],$Number[1],
                   $Voltage[2],$Duration[2],$Number[2],
                   date("Y-m-d H:i:s") );
if($user_select==2){  // if user select 2
    $q = ", (%d, %d, %d,%d, %d, %d,%d, %d, %d, '%s' ,'$login_session')";
    $qs = sprintf( $qs.$q, $Voltage[3],$Duration[3],$Number[3],
                             $Voltage[4],$Duration[4],$Number[4],
                             $Voltage[5],$Duration[5],$Number[5],
                             date("Y-m-d H:i:s") );
}
$result = mysql_query($qs);
if ( ! $result ) {
     die( 'Insert failed ' . mysql_errno() . ' ' . mysql_error() );                
}

chỉnh sửa số 2
đây là một phiên bản khác. Vòng lặp for của bạn không hợp lệ php for(i=0;i<row_count;i++) . mỗi cái phải có $ - for($i=0;$i<$row_count;$i++) . Ngoài ra, sprintf của bạn có số lượng biến sai. Trong $q của bạn bạn có 9 %d , nhưng trong $qs bạn chỉ đang cho 3. Bạn mong đợi 6 cái còn lại đến từ đâu. Trong phần này, tôi đã thay đổi vòng lặp của bạn để tăng thêm 3 - for($i=0;$i<$row_count;$i+=3) và đã sử dụng $Voltage[$i+1], $Duration[$i+1], $Number[$i+1], $Voltage[$i+2], $Duration[$i+2], $Number[$i+2], để điền vào 6 %d còn lại s

$Voltage = array();
$Duration = array();
$Number = array();

foreach($asma as $key => $value) 
{

   foreach ( $value as $ind => $hObject ) 
   {
      $Voltage[] = $hObject->Voltage;
      $Duration[] = $hObject->Duration;
      $Number[] = $hObject->Number;               

} }// endforeach
for($i=0;$i<$row_count;$i+=3)
{

  $q = "INSERT INTO ga (fe, fe1, fe2,fe3,fe4,fe5,fe6,f7,f8, timestamp,username ) VALUES (%d, %d, %d,%d, %d, %d,%d, %d, %d, '%s' ,'$login_session')";
  $qs = sprintf( $q, $Voltage[$i],$Duration[$i],$Number[$i],
                     $Voltage[$i+1],$Duration[$i+1],$Number[$i+1],
                     $Voltage[$i+2],$Duration[$i+3],$Number[$i+3],

                   date("Y-m-d H:i:s") );
  $result = mysql_query($qs);
  if ( ! $result ) {
     die( 'Insert failed ' . mysql_errno() . ' ' . mysql_error() );                
 }}}
?>


  1. DBeaver
  2.   
  3. phpMyAdmin
  4.   
  5. Navicat
  6.   
  7. SSMS
  8.   
  9. MySQL Workbench
  10.   
  11. SQLyog
  1. Làm cách nào để nhập bảng trong phpmyadmin? Tôi gặp lỗi về kích thước tệp

  2. Quyền truy cập phpMyAdmin bị từ chối đối với người dùng 'root' @ 'localhost' (sử dụng mật khẩu:NO)

  3. Tại sao tôi nhận được Máy chủ '192.168.1.220' không được phép kết nối với máy chủ MySQL này?

  4. Sử dụng PHPMyAdmin để quản lý Amazon RDS

  5. Làm cách nào để biết lựa chọn của người dùng trong bài kiểm tra có đúng không?