88 lines
3.9 KiB
PHP
88 lines
3.9 KiB
PHP
<?php
|
||
// ==============================================================
|
||
// setup_tables.php — Fix & buat semua tabel di database webgis
|
||
// HAPUS FILE INI SETELAH DIGUNAKAN!
|
||
// ==============================================================
|
||
$host = getenv('DB_HOST') ?: 'db';
|
||
$user = getenv('DB_USER') ?: 'root';
|
||
$pass = getenv('DB_PASS') ?: 'root';
|
||
$db = getenv('DB_NAME_SPBU') ?: 'webgis';
|
||
|
||
$conn = mysqli_connect($host, $user, $pass, $db);
|
||
if (!$conn) die('<p style="color:red">Koneksi gagal: ' . mysqli_connect_error() . '</p>');
|
||
|
||
echo '<style>body{font-family:monospace;background:#0b1120;color:#e0e6f0;padding:20px}.ok{color:#00c9aa}.err{color:#f03e5a}.info{color:#f59e0b}.warn{color:#fb923c}h2,h3{color:#1a5fff}</style>';
|
||
echo '<h2>🛠️ Fix & Setup Tabel WebGIS SPBU</h2>';
|
||
|
||
// ── 1. SPBU table ──────────────────────────────────────────────
|
||
echo '<h3>📌 Tabel: spbu</h3>';
|
||
mysqli_query($conn, "CREATE TABLE IF NOT EXISTS `spbu` (
|
||
`id` int NOT NULL AUTO_INCREMENT,
|
||
`nama_spbu` varchar(100) DEFAULT NULL,
|
||
`no_wa` varchar(20) DEFAULT NULL,
|
||
`buka_24jam` enum('Ya','Tidak') DEFAULT 'Tidak',
|
||
`latitude` double DEFAULT NULL,
|
||
`longitude` double DEFAULT NULL,
|
||
PRIMARY KEY (`id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4");
|
||
echo "<p class='ok'>✅ Tabel spbu OK.</p>";
|
||
|
||
// ── 2. JALAN table — drop & recreate (pasti schema benar) ──────
|
||
echo '<h3>📌 Tabel: jalan</h3>';
|
||
// Cek jumlah data dulu
|
||
$cntR = mysqli_query($conn, "SELECT COUNT(*) as c FROM jalan");
|
||
$cnt = $cntR ? mysqli_fetch_assoc($cntR)['c'] : 0;
|
||
echo "<p class='info'>ℹ️ Data jalan saat ini: <b>$cnt</b> record.</p>";
|
||
|
||
// Drop dan recreate karena schema mungkin salah
|
||
mysqli_query($conn, "DROP TABLE IF EXISTS `jalan`");
|
||
$r = mysqli_query($conn, "CREATE TABLE `jalan` (
|
||
`id` int NOT NULL AUTO_INCREMENT,
|
||
`nama_jalan` varchar(150) NOT NULL,
|
||
`status_jalan` enum('Nasional','Provinsi','Kabupaten') DEFAULT 'Nasional',
|
||
`panjang` double DEFAULT 0,
|
||
`geom` longtext,
|
||
PRIMARY KEY (`id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4");
|
||
if ($r) {
|
||
echo "<p class='ok'>✅ Tabel jalan di-recreate dengan schema yang benar (status_jalan ✓).</p>";
|
||
} else {
|
||
echo "<p class='err'>❌ Error: " . mysqli_error($conn) . "</p>";
|
||
}
|
||
|
||
// ── 3. PARSIL table — drop & recreate ──────────────────────────
|
||
echo '<h3>📌 Tabel: parsil</h3>';
|
||
$cntR2 = mysqli_query($conn, "SELECT COUNT(*) as c FROM parsil");
|
||
$cnt2 = $cntR2 ? mysqli_fetch_assoc($cntR2)['c'] : 0;
|
||
echo "<p class='info'>ℹ️ Data parsil saat ini: <b>$cnt2</b> record.</p>";
|
||
|
||
mysqli_query($conn, "DROP TABLE IF EXISTS `parsil`");
|
||
$r2 = mysqli_query($conn, "CREATE TABLE `parsil` (
|
||
`id` int NOT NULL AUTO_INCREMENT,
|
||
`nama_pemilik` varchar(150) NOT NULL,
|
||
`status` enum('SHM','HGB','HGU','HP') DEFAULT 'SHM',
|
||
`luas` double DEFAULT 0,
|
||
`geom` longtext,
|
||
PRIMARY KEY (`id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4");
|
||
if ($r2) {
|
||
echo "<p class='ok'>✅ Tabel parsil di-recreate dengan schema yang benar.</p>";
|
||
} else {
|
||
echo "<p class='err'>❌ Error: " . mysqli_error($conn) . "</p>";
|
||
}
|
||
|
||
// ── Verifikasi kolom ────────────────────────────────────────────
|
||
echo '<hr style="border-color:#2d3449;margin:20px 0">';
|
||
echo '<h3>🔍 Verifikasi Kolom Tabel Jalan:</h3>';
|
||
$cols = mysqli_query($conn, "SHOW COLUMNS FROM jalan");
|
||
while ($col = mysqli_fetch_assoc($cols)) {
|
||
echo "<p class='ok'> ✓ {$col['Field']} ({$col['Type']})</p>";
|
||
}
|
||
|
||
echo '<hr style="border-color:#2d3449;margin:20px 0">';
|
||
echo '<h3 style="color:#00c9aa">🎉 Fix selesai! Sekarang coba Tambah Jalan lagi.</h3>';
|
||
echo '<p style="color:#f03e5a"><b>⚠️ Hapus file ini setelah selesai!</b></p>';
|
||
echo '<p>→ <a href="/spbu/index.php" style="color:#1a5fff">Kembali ke SPBU Dashboard</a></p>';
|
||
mysqli_close($conn);
|
||
?>
|