Tugas 8 Pweb
Membuat form tambah siswa dengan foto
Kendala: masih belum bisa menambahkan siswa
link web: https://achferdiregis.000webhostapp.com/
Tampilan awal:
Tampilan tambah siswa:
* belum bisa menyimpan data siswa (error)
source code:
- database.sql
CREATE TABLE `siswa` (
`id` int(11) NOT NULL,
`nis` varchar(11) NOT NULL,
`nama` varchar(50) NOT NULL,
`jenis_kelamin` varchar(10) NOT NULL,
`telp` varchar(15) NOT NULL,
`alamat` text NOT NULL,
`foto` varchar(200) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
- koneksi.php
<?php
$host = "localhost"; // Nama hostnya
$username = "id19999956_root"; // Username
$password = "S2sOLOz3@IqU{Djv"; // Password (Isi jika menggunakan password)
$database = "id19999956_delapan_siswa"; // Nama databasenya
// Koneksi ke MySQL dengan PDO
$pdo = new PDO('mysql:host=' . $host . ';dbname=' . $database, $username, $password);
?>
- index.php
<html>
<head>
<title>Aplikasi CRUD Plus Upload Gambar dengan PHP</title>
</head>
<body>
<h1>Data Siswa</h1>
<a href="form_simpan.php">Tambah Data</a><br><br>
<table border="1" width="100%">
<tr>
<th>Foto</th>
<th>NIS</th>
<th>Nama</th>
<th>Jenis Kelamin</th>
<th>Telepon</th>
<th>Alamat</th>
<th colspan="2">Aksi</th>
</tr>
<?php
// Load file koneksi.php
include "koneksi.php";
// Buat query untuk menampilkan semua data siswa
$sql = $pdo->prepare("SELECT * FROM siswa");
$sql->execute(); // Eksekusi querynya
while ($data = $sql->fetch()) { // Ambil semua data dari hasil eksekusi $sql
echo "<tr>";
echo "<td><img src='images/" . $data['foto'] . "' width='100' height='100'></td>";
echo "<td>" . $data['nis'] . "</td>";
echo "<td>" . $data['nama'] . "</td>";
echo "<td>" . $data['jenis_kelamin'] . "</td>";
echo "<td>" . $data['telp'] . "</td>";
echo "<td>" . $data['alamat'] . "</td>";
echo "<td><a href='form_ubah.php?id=" . $data['id'] . "'>Ubah</a></td>";
echo "<td><a href='proses_hapus.php?id=" . $data['id'] . "'>Hapus</a></td>";
echo "</tr>";
}
?>
</table>
</body>
</html>
- form_simpan.php
<html>
<head>
<title>Aplikasi CRUD dengan PHP</title>
</head>
<body>
<h1>Tambah Data Siswa</h1>
<form method="post" action="proses_simpan.php" enctype="multipart/form-data">
<table cellpadding="8">
<tr>
<td>NIS</td>
<td><input type="text" name="nis"></td>
</tr>
<tr>
<td>Nama</td>
<td><input type="text" name="nama"></td>
</tr>
<tr>
<td>Jenis Kelamin</td>
<td>
<input type="radio" name="jenis_kelamin" value="Laki-laki"> Laki-laki
<input type="radio" name="jenis_kelamin" value="Perempuan"> Perempuan
</td>
</tr>
<tr>
<td>Telepon</td>
<td><input type="text" name="telp"></td>
</tr>
<tr>
<td>Alamat</td>
<td><textarea name="alamat"></textarea></td>
</tr>
<tr>
<td>Foto</td>
<td><input type="file" name="foto"></td>
</tr>
</table>
<hr>
<input type="submit" value="Simpan">
<a href="index.php"><input type="button" value="Batal"></a>
</form>
</body>
</html>
- form_ubah.php
<html>
<head>
<title>Aplikasi CRUD dengan PHP</title>
</head>
<body>
<h1>Ubah Data Siswa</h1>
<?php
// Load file koneksi.php
include "koneksi.php";
// Ambil data NIS yang dikirim oleh index.php melalui URL
$id = $_GET['id'];
// Query untuk menampilkan data siswa berdasarkan ID yang dikirim
$sql = $pdo->prepare("SELECT * FROM siswa WHERE id=:id");
$sql->bindParam(':id', $id);
$sql->execute(); // Eksekusi query insert
$data = $sql->fetch(); // Ambil semua data dari hasil eksekusi $sql
?>
<form method="post" action="proses_ubah.php?id=<?php echo $id; ?>" enctype="multipart/form-data">
<table cellpadding="8">
<tr>
<td>NIS</td>
<td><input type="text" name="nis" value="<?php echo $data['nis']; ?>"></td>
</tr>
<tr>
<td>Nama</td>
<td><input type="text" name="nama" value="<?php echo $data['nama']; ?>"></td>
</tr>
<tr>
<td>Jenis Kelamin</td>
<td>
<?php
if ($data['jenis_kelamin'] == "Laki-laki") {
echo "<input type='radio' name='jenis_kelamin' value='laki-laki' checked='checked'> Laki-laki";
echo "<input type='radio' name='jenis_kelamin' value='perempuan'> Perempuan";
} else {
echo "<input type='radio' name='jenis_kelamin' value='laki-laki'> Laki-laki";
echo "<input type='radio' name='jenis_kelamin' value='perempuan' checked='checked'> Perempuan";
}
?>
</td>
</tr>
<tr>
<td>Telepon</td>
<td><input type="text" name="telp" value="<?php echo $data['telp']; ?>"></td>
</tr>
<tr>
<td>Alamat</td>
<td><textarea name="alamat"><?php echo $data['alamat']; ?></textarea></td>
</tr>
<tr>
<td>Foto</td>
<td>
<input type="file" name="foto">
</td>
</tr>
</table>
<hr>
<input type="submit" value="Ubah">
<a href="index.php"><input type="button" value="Batal"></a>
</form>
</body>
</html>
- proses_simpan.php
<?php
// Load file koneksi.php
include "koneksi.php";
// Ambil Data yang Dikirim dari Form
$nis = $_POST['nis'];
$nama = $_POST['nama'];
$jenis_kelamin = $_POST['jenis_kelamin'];
$telp = $_POST['telp'];
$alamat = $_POST['alamat'];
$foto = $_FILES['foto']['name'];
$tmp = $_FILES['foto']['tmp_name'];
// Rename nama fotonya dengan menambahkan tanggal dan jam upload
$fotobaru = date('dmYHis') . $foto;
// Set path folder tempat menyimpan fotonya
$path = "images/" . $fotobaru;
// Proses upload
if (move_uploaded_file($tmp, $path)) { // Cek apakah gambar berhasil diupload atau tidak
// Proses simpan ke Database
$sql = $pdo->prepare("INSERT INTO siswa(nis, nama, jenis_kelamin, telp, alamat, foto) VALUES(:nis,:nama,:jk,:telp,:alamat,:foto)");
$sql->bindParam(':nis', $nis);
$sql->bindParam(':nama', $nama);
$sql->bindParam(':jk', $jenis_kelamin);
$sql->bindParam(':telp', $telp);
$sql->bindParam(':alamat', $alamat);
$sql->bindParam(':foto', $fotobaru);
$sql->execute(); // Eksekusi query insert
if ($sql) { // Cek jika proses simpan ke database sukses atau tidak
// Jika Sukses, Lakukan :
header("location: index.php"); // Redirect ke halaman index.php
} else {
// Jika Gagal, Lakukan :
echo "Maaf, Terjadi kesalahan saat mencoba untuk menyimpan data ke database.";
echo "<br><a href='form_simpan.php'>Kembali Ke Form</a>";
}
} else {
// Jika gambar gagal diupload, Lakukan :
echo "Maaf, Gambar gagal untuk diupload.";
echo "<br><a href='form_simpan.php'>Kembali Ke Form</a>";
}
?>
- proses_ubah.php
<?php
// Load file koneksi.php
include "koneksi.php";
// Ambil data ID yang dikirim oleh form_ubah.php melalui URL
$id = $_GET['id'];
// Ambil Data yang Dikirim dari Form
$nis = $_POST['nis'];
$nama = $_POST['nama'];
$jenis_kelamin = $_POST['jenis_kelamin'];
$telp = $_POST['telp'];
$alamat = $_POST['alamat'];
// Ambil data foto yang dipilih dari form
$foto = $_FILES['foto']['name'];
$tmp = $_FILES['foto']['tmp_name'];
// Cek apakah user ingin mengubah fotonya atau tidak
if (empty($foto)) { // Jika user tidak memilih file foto pada form
// Lakukan proses update tanpa mengubah fotonya
// Proses ubah data ke Database
$sql = $pdo->prepare("UPDATE siswa SET nis=:nis, nama=:nama, jenis_kelamin=:jk, telp=:telp, alamat=:alamat WHERE id=:id");
$sql->bindParam(':nis', $nis);
$sql->bindParam(':nama', $nama);
$sql->bindParam(':jk', $jenis_kelamin);
$sql->bindParam(':telp', $telp);
$sql->bindParam(':alamat', $alamat);
$sql->bindParam(':id', $id);
$execute = $sql->execute(); // Eksekusi / Jalankan query
if ($sql) { // Cek jika proses simpan ke database sukses atau tidak
// Jika Sukses, Lakukan :
header("location: index.php"); // Redirect ke halaman index.php
} else {
// Jika Gagal, Lakukan :
echo "Maaf, Terjadi kesalahan saat mencoba untuk menyimpan data ke database.";
echo "<br><a href='form_ubah.php'>Kembali Ke Form</a>";
}
} else { // Jika user memilih foto / mengisi input file foto pada form
// Lakukan proses update termasuk mengganti foto sebelumnya
// Rename nama fotonya dengan menambahkan tanggal dan jam upload
$fotobaru = date('dmYHis') . $foto;
// Set path folder tempat menyimpan fotonya
$path = "images/" . $fotobaru;
// Proses upload
if (move_uploaded_file($tmp, $path)) { // Cek apakah gambar berhasil diupload atau tidak
// Query untuk menampilkan data siswa berdasarkan ID yang dikirim
$sql = $pdo->prepare("SELECT foto FROM siswa WHERE id=:id");
$sql->bindParam(':id', $id);
$sql->execute(); // Eksekusi query insert
$data = $sql->fetch(); // Ambil semua data dari hasil eksekusi $sql
// Cek apakah file foto sebelumnya ada di folder images
if (is_file("images/" . $data['foto'])) // Jika foto ada
unlink("images/" . $data['foto']); // Hapus file foto sebelumnya yang ada di folder images
// Proses ubah data ke Database
$sql = $pdo->prepare("UPDATE siswa SET nis=:nis, nama=:nama, jenis_kelamin=:jk, telp=:telp, alamat=:alamat, foto=:foto WHERE id=:id");
$sql->bindParam(':nis', $nis);
$sql->bindParam(':nama', $nama);
$sql->bindParam(':jk', $jenis_kelamin);
$sql->bindParam(':telp', $telp);
$sql->bindParam(':alamat', $alamat);
$sql->bindParam(':foto', $fotobaru);
$sql->bindParam(':id', $id);
$execute = $sql->execute(); // Eksekusi / Jalankan query
if ($sql) { // Cek jika proses simpan ke database sukses atau tidak
// Jika Sukses, Lakukan :
header("location: index.php"); // Redirect ke halaman index.php
} else {
// Jika Gagal, Lakukan :
echo "Maaf, Terjadi kesalahan saat mencoba untuk menyimpan data ke database.";
echo "<br><a href='form_ubah.php'>Kembali Ke Form</a>";
}
} else {
// Jika gambar gagal diupload, Lakukan :
echo "Maaf, Gambar gagal untuk diupload.";
echo "<br><a href='form_ubah.php'>Kembali Ke Form</a>";
}
}
?>
- proses_hapus.php
<?php
// Load file koneksi.php
include "koneksi.php";
// Ambil data NIS yang dikirim oleh index.php melalui URL
$id = $_GET['id'];
// Query untuk menampilkan data siswa berdasarkan ID yang dikirim
$sql = $pdo->prepare("SELECT foto FROM siswa WHERE id=:id");
$sql->bindParam(':id', $id);
$sql->execute(); // Eksekusi query insert
$data = $sql->fetch(); // Ambil semua data dari hasil eksekusi $sql
// Cek apakah file fotonya ada di folder images
if (is_file("images/" . $data['foto'])) // Jika foto ada
unlink("images/" . $data['foto']); // Hapus foto yang telah diupload dari folder images
// Query untuk menghapus data siswa berdasarkan ID yang dikirim
$sql = $pdo->prepare("DELETE FROM siswa WHERE id=:id");
$sql->bindParam(':id', $id);
$execute = $sql->execute(); // Eksekusi / Jalankan query
if ($execute) { // Cek jika proses simpan ke database sukses atau tidak
// Jika Sukses, Lakukan :
header("location: index.php"); // Redirect ke halaman index.php
} else {
// Jika Gagal, Lakukan :
echo "Data gagal dihapus. <a href='index.php'>Kembali</a>";
}
?>
Comments
Post a Comment