fix : add object bug

This commit is contained in:
2026-06-11 18:13:11 +07:00
parent 7b14ddcec1
commit 448dfaa75d
2 changed files with 43 additions and 34 deletions
+15 -15
View File
@@ -1,14 +1,13 @@
<?php
// Menyertakan file koneksi
include 'koneksi.php';
echo "<div style='font-family:sans-serif; padding:20px; background:#f8fafc; border-radius:8px;'>";
echo "<h2 style='color:#1e3a8a;'>🚀 Database Auto-Importer & Repair — Folder 01</h2>";
echo "<p>Sedang mengeksekusi migrasi tabel secara aman...</p><hr>";
echo "<h2 style='color:#1e3a8a;'>🚀 Database Sync & Repair — Folder 01</h2>";
echo "<p>Sedang memperbaiki struktur tabel Tugas...</p><hr>";
$queries = [];
// 1. Buat tabel jalan jika belum ada
// 1. Buat/Perbaiki tabel jalan
$queries[] = "CREATE TABLE IF NOT EXISTS jalan (
id INT(11) AUTO_INCREMENT PRIMARY KEY,
nama_jalan VARCHAR(100) NOT NULL,
@@ -16,30 +15,28 @@ $queries[] = "CREATE TABLE IF NOT EXISTS jalan (
geojson TEXT NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;";
// 2. Buat tabel parsil jika belum ada
// 2. Buat/Perbaiki tabel parsil (Ditambahkan kolom luas_tanah)
$queries[] = "CREATE TABLE IF NOT EXISTS parsil (
id INT(11) AUTO_INCREMENT PRIMARY KEY,
nama_pemilik VARCHAR(100) DEFAULT NULL,
pemilik_tanah VARCHAR(100) DEFAULT NULL,
status_kepemilikan VARCHAR(50) DEFAULT NULL,
status_shm VARCHAR(50) DEFAULT NULL,
luas_tanah VARCHAR(50) DEFAULT NULL,
geojson TEXT NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;";
// 3. Buat tabel penduduk / titik warga miskin LANGSUNG dengan kolom radius_warga di dalamnya
// (Ini menggantikan perintah ALTER TABLE yang error kemarin agar 100% aman)
$queries[] = "CREATE TABLE IF NOT EXISTS penduduk_miskin (
// 3. Buat tabel SPBU yang hilang (Solusi Error simpan_spbu.php)
$queries[] = "CREATE TABLE IF NOT EXISTS spbu (
id INT(11) AUTO_INCREMENT PRIMARY KEY,
nama_kk VARCHAR(100) NOT NULL,
nama_spbu VARCHAR(100) NOT NULL,
alamat TEXT NOT NULL,
anggota_keluarga INT(11) NOT NULL,
pendidikan_terakhir VARCHAR(50) NOT NULL,
latitude VARCHAR(50) NOT NULL,
longitude VARCHAR(50) NOT NULL,
radius_warga INT(11) NOT NULL DEFAULT 300
geojson TEXT DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;";
// Eksekusi semua query satu per satu
// Eksekusi pembaruan
$success = 0;
foreach ($queries as $index => $sql) {
if (mysqli_query($conn, $sql)) {
@@ -49,7 +46,10 @@ foreach ($queries as $index => $sql) {
}
}
echo "<br><b style='color:green;'>✔ Selesai! Berhasil mengeksekusi $success perintah SQL dengan sukses tanpa error syntax.</b>";
echo "<br><br><a href='index.php'>← Kembali ke Peta Utama</a>";
// Fitur Tambahan: Suntik paksa kolom luas_tanah jika tabel parsil lama sudah terlanjur ada
mysqli_query($conn, "ALTER TABLE parsil ADD COLUMN IF NOT EXISTS luas_tanah VARCHAR(50) DEFAULT NULL;");
echo "<br><b style='color:green;'>✔ Selesai! Folder 01 siap digunakan kembali.</b>";
echo "<br><br><a href='index.php'>← Kembali ke Peta</a>";
echo "</div>";
?>
+28 -19
View File
@@ -2,12 +2,12 @@
include 'koneksi.php';
echo "<div style='font-family:sans-serif; padding:20px; background:#fafaf9; border-radius:8px;'>";
echo "<h2 style='color:#0f766e;'>🏛 Database Importer Intervensi Walikota Pontianak — Folder 02 (Updated)</h2>";
echo "<p>Sedang membangun skema tabel relasional dan hak akses pengguna...</p><hr>";
echo "<h2 style='color:#0f766e;'>🏛 Database Sync & Repair — Folder 02 (UAS)</h2>";
echo "<p>Sedang memperbaiki relasi data intervensi krisis...</p><hr>";
$queries = [];
// 1. Tabel Otentikasi Pengguna (Users) untuk Login
// 1. Tabel Users
$queries[] = "CREATE TABLE IF NOT EXISTS users (
id INT(11) AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL UNIQUE,
@@ -16,37 +16,44 @@ $queries[] = "CREATE TABLE IF NOT EXISTS users (
role VARCHAR(30) NOT NULL DEFAULT 'admin'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;";
// 2. Isi Akun Default untuk Login (Username: admin, Password: admin)
// Menggunakan INSERT IGNORE agar jika di-refresh tidak menduplikat data
$queries[] = "INSERT IGNORE INTO users (id, username, password, nama_lengkap, role)
VALUES (1, 'admin', 'admin', 'Diva Schenka (Admin)', 'admin'),
(2, 'walikota', 'walikota', 'Walikota Pontianak', 'walikota');";
VALUES (1, 'admin', 'admin', 'Diva Schenka (Admin)', 'admin');";
// 3. Tabel utama penduduk miskin krisis kesehatan Pontianak
// 2. Tabel Penduduk Miskin (Ditambahkan kolom 'umur' sesuai error simpan_miskin.php)
$queries[] = "CREATE TABLE IF NOT EXISTS penduduk_miskin (
id INT(11) AUTO_INCREMENT PRIMARY KEY,
nama_kk VARCHAR(100) NOT NULL,
tanggal_lahir DATE NOT NULL,
tanggal_lahir DATE DEFAULT NULL,
umur INT(11) DEFAULT NULL,
alamat TEXT NOT NULL,
anggota_keluarga INT(11) NOT NULL,
pendidikan_terakhir VARCHAR(50) NOT NULL,
anggota_keluarga INT(11) DEFAULT 0,
pendidikan_terakhir VARCHAR(50) DEFAULT NULL,
riwayat_penyakit VARCHAR(255) DEFAULT 'Tidak Ada',
latitude VARCHAR(50) NOT NULL,
longitude VARCHAR(50) NOT NULL,
status_verifikasi VARCHAR(30) DEFAULT 'Pending'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;";
// 4. Tabel histori bantuan yang berelasi dengan penduduk_miskin (One to Many)
// 3. Tabel Histori Bantuan (Kolom relasi disesuaikan menjadi id_warga agar JOIN h.id_warga sukses)
$queries[] = "CREATE TABLE IF NOT EXISTS histori_bantuan (
id INT(11) AUTO_INCREMENT PRIMARY KEY,
id_miskin INT(11) NOT NULL,
id_warga INT(11) NOT NULL,
nama_bantuan VARCHAR(100) NOT NULL,
tanggal_penyaluran DATE NOT NULL,
sumber_dana VARCHAR(50) NOT NULL,
keterangan TEXT,
FOREIGN KEY (id_miskin) REFERENCES penduduk_miskin(id) ON DELETE CASCADE
keterangan TEXT
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;";
// 4. Tabel laporan_cepat yang dilaporkan hilang (Solusi Error kelola_laporan.php)
$queries[] = "CREATE TABLE IF NOT EXISTS laporan_cepat (
id INT(11) AUTO_INCREMENT PRIMARY KEY,
nama_pelapor VARCHAR(100) NOT NULL,
perihal VARCHAR(255) NOT NULL,
pesan TEXT NOT NULL,
tanggal_kirim TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;";
// Eksekusi semua skema baru
$success = 0;
foreach ($queries as $index => $sql) {
if (mysqli_query($conn, $sql)) {
@@ -56,9 +63,11 @@ foreach ($queries as $index => $sql) {
}
}
echo "<br><b style='color:teal;'>✔ Selesai! Berhasil memperbarui $success skema tabel termasuk hak akses login.</b>";
echo "<br><p>Silakan coba login kembali menggunakan akun:</p>";
echo "<ul><li>Username: <b>admin</b> | Password: <b>admin</b></li><li>Username: <b>walikota</b> | Password: <b>walikota</b></li></ul>";
echo "<br><a href='login.php'>👉 Menuju Halaman Login</a>";
// Trik Aman: Tambah kolom mendadak jika tabel lama masih mengunci di server
mysqli_query($conn, "ALTER TABLE penduduk_miskin ADD COLUMN IF NOT EXISTS umur INT(11) DEFAULT NULL;");
mysqli_query($conn, "ALTER TABLE histori_bantuan ADD COLUMN IF NOT EXISTS id_warga INT(11) NOT NULL;");
echo "<br><b style='color:teal;'>✔ Selesai! Seluruh struktur tabel UAS telah diselaraskan.</b>";
echo "<br><br><a href='index.php'>← Kembali ke Peta Utama</a>";
echo "</div>";
?>