Sabtu, 20 Desember 2025

php

Mantap 👍
Sekarang kita lanjut UPDATE & SELECT dengan gaya pelan-pelan, rapi, dan konsisten OOP, biar nyambung sama yang sudah kamu pahami.
Aku akan pakai mysqli + prepared statement seperti sebelumnya.
STRUKTUR SEDERHANA (BIAR KEBAYANG)
Salin kode

config/
 └─ database.php
models/
 └─ Buku.php
index.php
1️⃣ UPDATE DATA (EDIT)
📌 Kasus
Misal kita mau edit data buku berdasarkan id
🔹 Method update() di models/Buku.php
Salin kode
Php
class Buku {

    private $conn;
    private $table = "buku";

    public $id;
    public $judul;
    public $pengarang;
    public $penerbit;
    public $tahunterbit;

    public function __construct($db){
        $this->conn = $db;
    }

    // UPDATE DATA
    public function update(){

        $query = "UPDATE " . $this->table . "
                  SET judul=?, pengarang=?, penerbit=?, tahunterbit=?
                  WHERE id=?";

        $stmt = mysqli_prepare($this->conn, $query);

        // bind parameter
        mysqli_stmt_bind_param(
            $stmt,
            "ssssi",
            $this->judul,
            $this->pengarang,
            $this->penerbit,
            $this->tahunterbit,
            $this->id
        );

        return mysqli_stmt_execute($stmt);
    }
}
🔍 Penjelasan pelan-pelan
Query:
Salin kode
Sql
UPDATE buku SET ... WHERE id=?
"ssssi" artinya:
Parameter
Tipe
judul
s
pengarang
s
penerbit
s
tahunterbit
s
id
i
🔹 Cara PAKAI (misal di index.php)
Salin kode
Php
$buku = new Buku($conn);

$buku->id = 1;
$buku->judul = "PHP OOP UPDATE";
$buku->pengarang = "Ihsan";
$buku->penerbit = "BANY URIP";
$buku->tahunterbit = "2024";

if($buku->update()){
    echo "Data berhasil diupdate";
}else{
    echo "Gagal update data";
}
2️⃣ SELECT SATU DATA (DETAIL / EDIT FORM)
📌 Kasus
Ambil 1 data buku berdasarkan id
🔹 Method getOne() di Buku.php
Salin kode
Php
public function getOne(){

    $query = "SELECT * FROM " . $this->table . " WHERE id=? LIMIT 1";
    $stmt = mysqli_prepare($this->conn, $query);

    mysqli_stmt_bind_param($stmt, "i", $this->id);
    mysqli_stmt_execute($stmt);

    $result = mysqli_stmt_get_result($stmt);
    return mysqli_fetch_assoc($result);
}
🔹 Cara PAKAI
Salin kode
Php
$buku = new Buku($conn);
$buku->id = 1;

$data = $buku->getOne();

echo $data['judul'];
📌 Biasanya ini dipakai untuk:
Isi form edit
Detail data
3️⃣ SELECT SEMUA DATA (LIST / TABEL)
🔹 Method getAll()
Salin kode
Php
public function getAll(){

    $query = "SELECT * FROM " . $this->table . " ORDER BY id DESC";
    $stmt = mysqli_prepare($this->conn, $query);
    mysqli_stmt_execute($stmt);

    return mysqli_stmt_get_result($stmt);
}
🔹 Cara PAKAI (Loop)
Salin kode
Php
$buku = new Buku($conn);
$result = $buku->getAll();

while($row = mysqli_fetch_assoc($result)){
    echo $row['judul'] . "<br>";
}
4️⃣ HUBUNGAN DENGAN FORM EDIT KAMU
Flow yang BENAR & PROFESIONAL:
🔹 Halaman edit
SELECT → isi form (readonly)
Klik Edit → JS buka field
Klik Simpan → UPDATE
5️⃣ KESALAHAN UMUM (YANG SERING TERJADI)
❌ Lupa WHERE id=? → semua data terupdate
❌ Salah "ssssi"
❌ id bukan integer
❌ Akses properti private langsung
6️⃣ RANGKUMAN SUPER SINGKAT
Operasi
Method
CREATE
create()
READ (1)
getOne()
READ (all)
getAll()
UPDATE
update()
🔥 NEXT LEVEL (PILIHAN)
Kalau mau lanjut, aku bisa ajarin:
1️⃣ DELETE (hapus data)
2️⃣ Integrasi ke AdminLTE Form Edit
3️⃣ MVC sederhana (Controller)
4️⃣ Validasi & Security Form
5️⃣ Ajax Update tanpa reload
Tinggal bilang:
LANJUT DELETE
atau
LANJUT FORM ADMINLTE

0 komentar:

Posting Komentar

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Press Release Distribution