Belajar PHP - Menjumlahkan record dengan PHP dan MySQLi
Dalam tutorial ini, kita akan mempraktekan cara menjumlahkan record pada
MySQL menggunakan PHP dan MySQLi, dan juga penggunaan GROUP BY dalam
query-nya.
Berikut adalah daftar yang akan dilakukan pada artikel kali ini:
Pertama, kita buat database terlebih dahulu, buka PhpMyAdmin ->
buat database baru dengan nama "sum" -> menu SQL dan pastekan kode
berikut untuk membuat tabel product dan sales.
--
-- Table structure for table `product`
--
CREATE TABLE `product` (
`productid` int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
`product_name` varchar(30) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- Dumping data for table `product`
--
INSERT INTO `product` (`productid`, `product_name`) VALUES
(1, 'Apel'),
(2, 'Jeruk'),
(3, 'Alfuket');
-- --------------------------------------------------------
--
-- Table structure for table `sales`
--
CREATE TABLE `sales` (
`salesid` int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
`productid` int(11) NOT NULL,
`sales_qty` double NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Output:
Struktur table product |
Struktur tabel sales |
Record tabel product |
Koneksi
Langkah selanjutnya adalah membuat koneksi database, disini saya
menyimpannya dengan nama "conn.php". File ini berfungsi sebagai
jembatan antara PHP dan MySQL.
<?php
//MySQLi OOP
$conn = new mysqli("localhost","root","","sum");
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
?>
Tampilan tabel dan form
Selanjutnya adalah membuat tabel dan formulir tambah data penjualan. Dalam
hal ini, kita akan membuat contoh sederhana form penjualan lalu kita beri
nama "indeks.php".
<?php
include_once('conn.php');
session_start();
?>
<!DOCTYPE html>
<html>
<head>
<title>How to Sum Column in MySQL using PHP/MySQLi</title>
</head>
<body>
<div style="float: left; width: auto;">
<h3>Tabel Penjualan</h3>
<table border="1">
<th>Nama Produk</th>
<th>Qty</th>
<!-- Menampilkan semua data penjualan -->
<?php
$total_qty=0;
//MySQLi OOP
$query=$conn->query("SELECT * FROM sales LEFT JOIN product ON product.productid=sales.productid ORDER BY product.product_name ASC");
while($row=$query->fetch_array()) {
?>
<tr>
<td><?= $row['product_name']; ?></td>
<td><?= $row['sales_qty']; ?></td>
</tr>
<?php
$total_qty += $row['sales_qty'];
}
?>
<tr>
<td><strong>TOTAL QTY</strong></td>
<td><strong><?= $total_qty; ?></strong></td>
</tr>
</table>
</div>
<div style="float: left; margin-left: 100px; top: -300px;">
<h3>Group By Produk</h3>
<ul>
<!-- Menampilkan jumlah total per item -->
<?php
// MySQLi OOP
$a=$conn->query("SELECT *, SUM(sales_qty) AS total_sales FROM sales LEFT JOIN product ON product.productid=sales.productid GROUP BY sales.productid");
while($arow=$a->fetch_array()){
?>
<li>Total <?= $arow['product_name'] ?>: <?= $arow['total_sales']; ?></li>
<?php
}
?>
</ul>
<h3>Tambah Data Penjualan</h3>
<form method="POST" action="add_sale.php">
<select name="sales_product">
<option value="0">Pilih Product</option>
<!-- tampilkan data produk di combobox -->
<?php
$p=$conn->query("SELECT * FROM product");
while($prow=$p->fetch_array()){
?>
<option value="<?= $prow['productid']; ?>"><?= $prow['product_name']; ?></option>
<?php
}
?>
</select>
Qty: <input type="text" name="sales_qty" required>
<input type="submit" value="ADD">
</form>
<span>
<?php
if (isset($_SESSION['msg'])){
echo $_SESSION['msg'];
unset ($_SESSION['msg']);
}
?>
</span>
</div>
</body>
</html>
Proses penambahan
Terakhir, kita buat file PHP untuk proses penambahan data penjualannya, kita beri nama "add_sale.php".<?php
include('conn.php');
session_start();
$product=$_POST['sales_product'];
$qty=$_POST['sales_qty'];
if ($product==0){
$_SESSION['msg']="Please select a product";
header('location:index.php');
}
else{
//MySQLi OOP
$conn->query("INSERT INTO sales (productid,sales_qty) VALUES ('$product','$qty')");
header('location:index.php');
}
?>
0 Komentar