Showing posts with label PostgreSQL. Show all posts
Showing posts with label PostgreSQL. Show all posts

Insert Multiple Data dengan Check Box dan PHP

Sekedar Tips bagi yang merasa kesulitan dengan query insert multiple data dengan checkbox dan PHP
Sebagai contoh kita buat dulu databasenya, DBMS yang saya gunakan adalah PostgreSQL, untuk MySQL hampir sama,

contoh :

Table Mahasiswa 
CREATE TABLE mahasiswa (nim char(9) primary key, nama varchar(30) not null);

Insert Multiple Data dengan Check Box dan PHP

Table Status
 CREATE TABLE status (nim char(9) references mahasiswa (nim),status varchar(10)); 
Insert Multiple Data dengan Check Box dan PHP

Insert beberapa data di Table Mahasiswa

Insert Multiple Data dengan Check Box dan PHP


Buat file koneksi.php

<?php
$conn_string ="host=localhost dbname=mydb user=abby password=acakadud";
$connection = pg_pconnect($conn_string);
?>

Sekarang buat form untuk insert beberapa data dari tabel mahasiswa ke tabel status dengan checkbox simpan dengan nama index.php

<!DOCTYPE html>
<html>
<!-- Code By : abby -->
<head>
<title>Multiple Checkbox PHP</title>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<meta name="generator" content="Geany 0.21" />
</head>
<body>
<h3 align='center'>Multiple Checkbox dengan PHP</h3>
<?php
require "koneksi.php";
echo"
<form action='proses.php' method='post'>
<table border='1' align='center'>";
$q=pg_query("select * from mahasiswa");
while($d=pg_fetch_array($q)){
echo"
<tr>
<td align='center'><input type='checkbox' name='item[]' value='$d[nim]'></td>
<td>$d[nama]</td>
</tr> ";
}
echo"
<tr>
<td><input type='reset' value='Reset'></td>
<td><input type='submit' name='submit' value='Simpan'></td>
</tr>
</table>
</from>";
?>
</body>
</html>

Hasilnya seperti berikut :
Insert Multiple Data dengan Check Box dan PHP

sekarang buat file proses.php

<?php
require "koneksi.php";
$jumlah = count($_POST["item"]);
for($i=0; $i < $jumlah; $i++)
{
    $nim=$_POST["item"][$i];
    $q=pg_query("insert into status values ('$nim','aktif')");
}
if ($q){
echo"Data Berhasil disimpan";
}
else
{
echo"Data Gagal Disimpan";
}
?>

Sekarang kita coba :

Insert Multiple Data dengan Check Box dan PHP

Insert Multiple Data dengan Check Box dan PHP

Setelah Berhasil kita cek di Database :
SELECT * from status;

Insert Multiple Data dengan Check Box dan PHP

Semoga Membantu

Query Group By di PostgreSQL

Untuk penggunaan query Group By di PostgreSQL berbeda dengan MySQL, agar lebih di mengerti coba dilihat contoh berikut :

MySQL 
mysql> create table pengunjung (id_pengunjung int not null, nama_pengunjung varchar(30) not null, tanggal date not null);Query OK, 0 rows affected (0.15 sec)
mysql> desc pengunjung;
+-----------------+-------------+------+-----+---------+-------+
| Field           | Type        | Null | Key | Default | Extra |
+-----------------+-------------+------+-----+---------+-------+
| id_pengunjung   | int(11)     | NO   |     | NULL    |       |
| nama_pengunjung | varchar(30) | NO   |     | NULL    |       |
| tanggal         | date        | NO   |     | NULL    |       |
+-----------------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
mysql> insert into pengunjung values     -> (1,'abby','2013-01-01'),    -> (2,'yoga','2013-01-01'),    -> (3,'dono','2013-01-02'),    -> (2,'yoga','2013-01-04'),    -> (1,'abby','2013-01-13'),    -> (1,'abby','2013-01-23');Query OK, 6 rows affected (0.19 sec)Records: 6  Duplicates: 0  Warnings: 0
mysql> select * from pengunjung;
+---------------+-----------------+------------+
| id_pengunjung | nama_pengunjung | tanggal    |
+---------------+-----------------+------------+
|             1 | abby            | 2013-01-01 |
|             2 | yoga            | 2013-01-01 |
|             3 | dono            | 2013-01-02 |
|             2 | yoga            | 2013-01-04 |
|             1 | abby            | 2013-01-13 |
|             1 | abby            | 2013-01-23 |
+---------------+-----------------+------------+
6 rows in set (0.00 sec)

contoh query Group By dengan MySQL seperti berikut :
mysql> select * from pengunjung group by id_pengunjung;
+---------------+-----------------+------------+
| id_pengunjung | nama_pengunjung | tanggal    |
+---------------+-----------------+------------+
|             1 | abby            | 2013-01-01 |
|             2 | yoga            | 2013-01-01 |
|             3 | dono            | 2013-01-02 |
+---------------+-----------------+------------+
3 rows in set (0.00 sec)

Sekarang coba kita coba tabel data yang sama dengan PostgreSQL :
postgres=# SELECT * from pengunjung;
+---------------+-----------------+------------+
| id_pengunjung | nama_pengunjung |  tanggal   |
+---------------+-----------------+------------+
|             1 | abby            | 2013-01-01 |
|             2 | yoga            | 2013-01-01 |
|             3 | dono            | 2013-01-02 |
|             2 | yoga            | 2013-01-04 |
|             1 | abby            | 2013-01-13 |
|             1 | abby            | 2013-01-23 |
+---------------+-----------------+------------+
(6 rows)

Dan kita coba jalankan query Group By yang sama :
postgres=# select * from pengunjung group by id_pengunjung;
ERROR:  column "pengunjung.nama_pengunjung" must appear in the GROUP BY clause or be used in an aggregate function
LINE 1: select * from pengunjung group by id_pengunjung;

Solusinya adalah dengan menggunakan fungsi DISTINCT ON  seperti berikut :
postgres=# select distinct on (id_pengunjung) id_pengunjung, nama_pengunjung, tanggal from pengunjung;
+---------------+-----------------+------------+
| id_pengunjung | nama_pengunjung |  tanggal   |
+---------------+-----------------+------------+
|             1 | abby            | 2013-01-01 |
|             2 | yoga            | 2013-01-01 |
|             3 | dono            | 2013-01-02 |
+---------------+-----------------+------------+
(3 rows)

Jadi DISTINCT akan mengabaikan nilai yang sama dalam suatu kolom.

Query Group By di PostgreSQL

Query Group By di PostgreSQL


Semoga Membantu