Anda di halaman 1dari 3

Input data massal | multiple insert dengan php

onphpid

l Input data massal | multiple insert dengan php onphpid Dalam membuat website dengan php pernahkah

Dalam membuat website dengan php pernahkah mendapat masalah dalam memasukkan data secara massal dalam database atau multiple insert hanya dengan sekali klik? tenang Onphpid akan berbagai tutorial untuk menyelesaikan masalah ini dengan php.

Memasukkan data massal atau multiple insert ini sering saya jumpai ketika saya ingin memasukkan data “kategori” sebuah posting, kuesioner, soal pilihan ganda dan data-data lain yang menuntut kita untuk mengeksekusi semua data tersebut hanya dengan satu kali klik tombol submit.

Pada kesempatan kali ini onphpid akan membahas bagaimana membuat fasilitas multiple insert dengan php, sebagai permulaan silahkan lihat perintah insert SQL berikut :

a. Perintah insert tunggal

MySQL

1

INSERT INTO table (kolomA,kolomB,kolomC) VALUES (valueA,valueB,valueC)

b.

Perintah multiple insert

MySQL

1

INSERT INTO table (kolomA,kolomB,kolomC)

2

VALUES

3

(valueA1,valueB1,valueC1),

4

(valueA2,valueB2,valueC2),

5

(valueA3,valueB3,valueC3),

6

Dari perintah di atas kita akan menggunakan opsi b untuk menangani multiple insert dengan php. silahkan ikuti step by step berikut ini

Tutorial multiple insert dengan php ini menggunakan :

– xampp versi 5.6.3

– PHP 5+

– Windows 7

1.

Buatlah sebuah folder di htdocs dengan nama “insert”

2.

Buatlah file-file berikut :

config.php

insert.php

form-insert.php

3.

Buatlah database dengan nama “multiple_insert”

4.

Buatlah fields seperti berikut :

id (INT) Auto Increment Primary Key

nama (VARCHAR 100)

email (VARCHAR 100)

Isikan kode berikut

config.php

<?php $dbhost = 'localhost'; $dbuser = 'root'; $dbpass = ''; $dbname = 'insert';

$koneksi = new mysqli($dbhost,$dbuser,$dbpass,$dbname);

# check koneksi

if( $koneksi->connect_error )

{

die('Oops!! koneksi Gagal : '. $koneksi->connect_error );

}

form-insert.php

PHP

<form action="insert.php" method="post">

a. nama <input type="text" name='nama[]' /> | email <input type="text" name='email[]' /> <br/>

b. nama <input type="text" name='nama[]' /> | email <input type="text" name='email[]' /> <br/>

c. nama <input type="text" name='nama[]' /> | email <input type="text" name='email[]' /> <br/>

d. nama <input type="text" name='nama[]' /> | email <input type="text" name='email[]' /> <br/>

e. nama <input type="text" name='nama[]' /> | email <input type="text" name='email[]' /> <br/>

f. nama <input type="text" name='nama[]' /> | email <input type="text" name='email[]' /> <br/>

g. nama <input type="text" name='nama[]' /> | email <input type="text" name='email[]' /> <br/>

<button>Simpan</button>

</form>

insert.php

PHP

require( 'config.php' );

if( !isset( $_POST['nama'] ) )

{

header('location:form-insert.php');

exit();

}

$nama = $_POST['nama']; $email = $_POST['email']; $count = count($nama);

$sql

= "INSERT INTO multiple_insert (nama,email) VALUES ";

for( $i=0; $i < $count; $i++ )

{

$sql .= "('{$nama[$i]}','{$email[$i]}')"; $sql .= ",";

}

$sql = rtrim($sql,",");

$insert = $koneksi->query($sql);

if( !$insert )

{

echo "gagal insert : ".$koneksi->error; }else{ echo "sukses, silahkan check database anda";

}

?>

PENJELASAN pada nama[] kita dapat melihat “[]”, tanda tersebut merupakan tambahan pada kolom input yang harus ditambahkan ketika melakukan multiple insert. sehingga data yang dikirim berubah menjadi array pada saat ditangkap dengan $_POST ( karena method pada form adalah post ).

.= ( titik samadengan ) merupakan opertor php untuk menggabungkan dengan string dari variabel sebelumnya (dengan catatan $variabel harus sama).

rtrim(); merupakan fungsi php untuk menghapus karakter sebelah kanan, ( default menghapus spasi) jika rtrim($var,’nilai’); maka kata ‘nilai’ di sebelah kanan akan dihapus.

Related