Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

cara memasukkan banyak array ke dalam database menggunakan PHP

Saya telah memodifikasi kode Anda untuk membuatnya berfungsi:

form.php

<form method="POST" action="form.php">
<input type="text" name="waw" />
<input type="submit" />
</form>

<form method="POST" action="input.php">
<?php 
$i=0;

while ($i<$_GET['waw'])
{
?>

<!-- Person #1 -->

<input type="text" name="username[]" />

<input type="text" name="phonenum[]" />

<input type="text" name="add[]" /><br />


<?php 
$i++;
}
?>
<input type="submit" />
</form>

input.php

<?php


$username="maizakath";
$password="12345";
$database="tryinsert";
mysql_connect('localhost',$username,$password);
@mysql_select_db($database) or die("<b>Unable to specified database</b>");



$sql_start = 'INSERT INTO `mytable` VALUES '; 
$sql_array = array(); 
$queue_num = $_POST['waw']; 
foreach ($_POST['username'] as $row=>$name)
{
$username = $name;
$phonenum = $_POST['phonenum'][$row];
$add = $_POST['add'][$row];
$sql_array[] = '("' . $username . '", "'.$phonenum.'", "'.$add.'")'; 
if (count($sql_array) >= $queue_num) {
  $query_single=$sql_start . implode(', ', $sql_array);
  mysql_query($query_single); 
  $sql_array = array(); 
}
}

if (count($sql_array) > 0)  {
  $query = $sql_start . implode(', ', $sql_array);
  mysql_query($query)or die(mysql_error());
}

?>

Ini bekerja dengan baik. Saya baru saja mengujinya di mesin lokal saya.

EDIT(Komentar) :

  1. Penggunaan variabel $queue_num di input.php tidak masuk akal, karena variabel ini hanya tersedia dalam skrip form.php (input 'wow' ditempatkan di formulir lain, yang dikirimkan ke file form.php, bukan input.php). Jadi if (count($sql_array) >= $queue_num) blok berfungsi salah;

  2. Periksa pengaturan konfigurasi Anda untuk koneksi database (seperti yang saya tulis di komentar, Anda harus mendefinisikan konstanta dengan nama 'localhost' atau menyertakan kata localhost dengan tanda kutip);

  3. Saya telah memodifikasi formulir Anda, karena memiliki struktur yang salah;

  4. Saya tidak mengerti tujuan membuat form pertama di form.php.

Anda dapat memodifikasi kode ini agar lebih sesuai untuk kasus Anda. Tapi pertama-tama coba gunakan yang ini.

Catatan. Gunakan var_dump() fungsi untuk melihat array $_POST Anda selama debugging untuk memahami, variabel apa yang tersedia.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. di mana mengedit daftar stopword teks lengkap mysql?

  2. Apakah ada yang setara dengan `date_default_timezone_set()` PHP yang berfungsi di MySQL?

  3. Tampilkan Hasil MySQL dalam tabel tanpa memuat ulang halaman

  4. MySQL mendapatkan baris tetapi lebih memilih satu nilai kolom daripada yang lain

  5. MySQL:Kendala unik di beberapa bidang