Php and Mysqli How to Upload Image to Database and Folder
Tutorial PHP Pemula Part 27 : Cara Membuat CRUD Upload File Menggunakan PHP Dan MySQLi
Tutorial PHP Pemula Office 27 : Cara Membuat CRUD Upload File Menggunakan PHP Dan MySQLi - Hello everyone selamat datang kembali diwebsite saya belajarwithib.my.id, pada seri kali ini kita akan masih mempelajari Cara Membuat Crud Upload File Menggunakan PHP Dan MySQLi.
Sebenarnya apa sih yang dimaksud dengan Crud? Sebanarnya CRUD itu adalah singkatan dari create, read, update, and delete. Keempat poin ini menurut Techopedia merupakan fungsi-fungsi utama yang diimplementasikan dalam aplikasi database.
Sebagian dari kalian mungkin paham kalau membuat Crud biasa hanya dapat menginput huruf dan angka namun apa jadinya bila kita membuat CRUD beserta upload file? Saya rasa kamu akan berpikir bahwa kita akan menyimpan filenya didalam database namun itu adalah pemikiran yang salah...sebenarnya kita hanya memasukan nama file yang kita upload ke dalam database bukan filenya yang kita masukan kedalam database, lalu dimana kita menyimpan filenya? Kita akan menyimpan filenya didalam 1 folder khusus yang isinya cuman file-file yang kita upload saja.
- Tutorial JavaScript Pemula Part 10 : Mengenal 3 Kotak Dialog Pada JavaScript
- Tutorial JavaScript Pemula Function xi : Perbedaan Var, Const Dan Let Pada Javascript
Bagaimana cara membuatnya? Yuk simak artikelnya sampai habis ya!
Cara Membuat CRUD Upload File Menggunakan PHP Dan MySQLi
Mempersiapkan Database Untuk Menyimpan Data
Sebelum kita membuat CRUD nya, alangkah baiknya kita harus membuat terlebih dahulu databasenya dan kita harus tahu juga mengenai data-information apa saja yang diperlukan oleh aplikasi/website yang kamu buat.
Buatlah database dengan nama "belajarwithib" lalu langsung saja buat table dengan nama "siswa" didalam database yang kita buat tadi, setelah itu isi saja fieldnya seperti dibawah ini.
Setelah ini apalagi yang perlu dipersiapkan? Ada lagi yang harus kita persiapkan yaitu binder untuk menampung file yang kita upload seperti yang saya tulis diatas. Tiru saja seperti screenshot dibawah ini.
Biar kamu tahu, pada tanda tunjuk warna merah itu merupakan folder untuk menyimpan file yang kita upload nantinya.
Membuat Koneksi Kedatabase MySQLi Dengan PHP
Sekarang buat atau buka file koneksi.php, lalu ketikkan lah lawmaking seperti dibawah ini.
Koneksi.php
<?php $host = "localhost"; $user = "root"; $pass = ""; $db = "belajarwithib"; $koneksi = mysqli_connect($host,$user,$pass,$db); if (!$koneksi) { die("Koneksi gagal:".mysqli_connect_error()); } ?>
Code diatas seharusnya sudah berhasil terhubung dengan Database yang kita sudah. Jika kalian ragu, kamu bias mengeceknya pada url seperti http://localhost/bwi/koneksi.php jika tidak tampil apa-apa maka koneksi kedatabase sudah berhasil.
Menampilkan Data Dari Database Menggunakan PHP
Sekarang kita akan menampilkan data dari Database menggunakan PHP yang caranya menurut saya sangat gampang sekali.
Buatlah file dengan nama "index.php" lalu Tuliskan dan contoh code dibawah ini.
Index.php
<!DOCTYPE html> <html lang="en"> <head> <!-- Required meta tags --> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <!-- Bootstrap CSS --> <link href="https://cdn.jsdelivr.net/npm/bootstrap@v.0.0-beta3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-eOJMYsd53ii+scO/bJGFsiCZc+5NDVN2yr8+0RDqr0Ql0h+rP48ckxlpbzKgwra6" crossorigin="anonymous"> <title>Cara Membuat Crud Upload File Menggunakan PHP Dan MySQLi - belajarwithib</title> </head> <torso> <div course="container mt-5 "> <heart class="mb-five" ><h2>Cara Membuat Crud Upload File Menggunakan PHP Dan MySQLi - belajarwithib</h2></heart> <hour> <?php if (isset($_GET['pesan'])) { ?> <?php if ($_GET['pesan'] == "berhasil") { ?> <div class="alert warning-primary" function="alert"> Berhasil Mengubah Data Siswa </div> <?php }elseif ($_GET['pesan'] == "gagal") { ?> <div course="alert alert-danger" part="warning"> Gagal Mengubah Information Siswa </div> <?php }elseif ($_GET['pesan'] == "ekstensi") { ?> <div class="alert alert-alert" role="alert"> Ekstensi File Harus PNG Dan JPG </div> <?php }elseif ($_GET['pesan'] == "size") { ?> <div class="alert alarm-warning" role="alarm"> Size File Tidak Boleh Lebih Dari 2 MB </div> <?php }elseif ($_GET['pesan'] == "hapus") { ?> <div class="alert alert-chief" function="alert"> Berhasil Menghapus Information Siswa </div> <?php }elseif ($_GET['pesan'] == "gagalhapus") { ?> <div class="alert warning-danger" role="warning"> Gagal Menghapus Data Siswa </div> <?php } ?> <?php } ?> <br> <a href="insert.php" class="btn btn-primary mb-ii">Tambah Data</a> <table class="table table-bordered mt-4" id="myTable"> <thead> <tr> <th scope="col" width="i%">#</thursday> <th scope="col">Nama Siswa</th> <th scope="col">Kelas</th> <thursday telescopic="col">Alamat</thursday> <thursday scope="col" width="20%">Foto</th> <thursday telescopic="col" width="20%">Opsi</thursday> </tr> </thead> <tbody> <?php include 'koneksi.php'; $no = 1; $get_data = mysqli_query($koneksi,"SELECT * FROM siswa"); while ($information = mysqli_fetch_array($get_data)) { ?> <tr> <td><?php repeat $no++; ?></td> <td><?php repeat $data['siswa_nama']; ?></td> <td><?php echo $information['siswa_kelas']; ?></td> <td><?php echo $data['siswa_alamat']; ?></td> <td> <?php if ($data['siswa_foto'] == "") { ?> <img src="https://via.placeholder.com/500x500.png?text=PAS+FOTO+SISWA" style="width:100px;elevation:100px;"> <?php }else{ ?> <img src="foto/<?php repeat $data['siswa_foto']; ?>" way="width:100px;summit:100px;"> <?php } ?> </td> <td> <a href="edit.php?id=<?php echo $information['id_siswa'] ?>" grade="btn btn-warning text-white">Edit</a> <a href="delete.php?id=<?php echo $data['id_siswa'] ?>" grade="btn btn-danger">Hapus</a> </td> </tr> <?php } ?> </tbody> </tabular array> </div> </body> </html>
Penjelasan Singkat
Pada code dibawah ini saya ingin membuat notifikasi seperti apakah datanya berhasil dihapus atau datanya gagal dihapus, nah dengan menggunakan fungsi GET kita dapat mengambil data didalam URL.
<?php if (isset($_GET['pesan'])) { ?> <?php if ($_GET['pesan'] == "berhasil") { ?> <div class="alarm alert-primary" role="alert"> Berhasil Mengubah Information Siswa </div> <?php }elseif ($_GET['pesan'] == "gagal") { ?> <div form="alarm alert-danger" function="alert"> Gagal Mengubah Data Siswa </div> <?php }elseif ($_GET['pesan'] == "ekstensi") { ?> <div class="alert warning-alarm" role="alert"> Ekstensi File Harus PNG Dan JPG </div> <?php }elseif ($_GET['pesan'] == "size") { ?> <div class="warning alert-warning" role="alert"> Size File Tidak Boleh Lebih Dari 2 MB </div> <?php }elseif ($_GET['pesan'] == "hapus") { ?> <div form="alert alert-primary" office="alert"> Berhasil Menghapus Information Siswa </div> <?php }elseif ($_GET['pesan'] == "gagalhapus") { ?> <div class="alert alarm-danger" function="warning"> Gagal Menghapus Data Siswa </div> <?php } ?> <?php } ?>
Lalu pada code dibawah ini merupakan cara kita mengambil data didalam database, dengan menggunakan fungsi mysqli_query Fungsi ini digunakan untuk mengirimkan perintah SQL ke server MySQL, apabila datanya sudah berhasil diambil maka kita harus mengubahnya menjadi assortment terlebih dahulu menggunakan mysqli_fetch_array Fungsi ini akan menangkap information dari hasil perintah query dan membentuknya ke dalam array asosiatif dan assortment numerik.
<?php include 'koneksi.php'; $no = one; $get_data = mysqli_query($koneksi,"SELECT * FROM siswa"); while ($data = mysqli_fetch_array($get_data)) { ?> <tr> <td><?php echo $no++; ?></td> <td><?php repeat $information['siswa_nama']; ?></td> <td><?php echo $data['siswa_kelas']; ?></td> <td><?php echo $data['siswa_alamat']; ?></td> <td> <?php if ($information['siswa_foto'] == "") { ?> <img src="https://via.placeholder.com/500x500.png?text=PAS+FOTO+SISWA" style="width:100px;tiptop:100px;"> <?php }else{ ?> <img src="foto/<?php echo $data['siswa_foto']; ?>" mode="width:100px;height:100px;"> <?php } ?> </td> <td> <a href="edit.php?id=<?php repeat $data['id_siswa'] ?>" class="btn btn-alarm text-white">Edit</a> <a href="delete.php?id=<?php echo $data['id_siswa'] ?>" class="btn btn-danger">Hapus</a> </td> </tr> <?php } ?>
Membuat Form Untuk Tambah Data Dan Memproses Information Dari Form
Untuk menambahkan data kita harus mempunyai sebuah form terlebih dahulu. Ini saya buat sangat sederhana jadi kalian bisa mengubahnya jadi jauh lebih bagus lagi dan sekarang buatlah file dengan nama insert.php lalu ketikanlah lawmaking seperti dibawah ini.
Insert.php
<!DOCTYPE html> <html lang="en"> <caput> <!-- Required meta tags --> <meta charset="utf-8"> <meta proper name="viewport" content="width=device-width, initial-calibration=i"> <!-- Bootstrap CSS --> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-eOJMYsd53ii+scO/bJGFsiCZc+5NDVN2yr8+0RDqr0Ql0h+rP48ckxlpbzKgwra6" crossorigin="anonymous"> <title>Cara Membuat Grime Upload File Menggunakan PHP Dan MySQLi - belajarwithib</title> </head> <body> <div class="container mt-5 "> <middle grade="mb-v" ><h2>Cara Membuat Crud Upload File Menggunakan PHP Dan MySQLi - belajarwithib</h2></center> <hr> <?php if (isset($_GET['pesan'])) { ?> <?php if ($_GET['pesan'] == "berhasil") { ?> <div class="alarm alert-master" role="alert"> Berhasil Menambahkan Information Siswa </div> <?php }elseif ($_GET['pesan'] == "gagal") { ?> <div form="alert alert-danger" role="warning"> Gagal Menambahkan Data Siswa </div> <?php }elseif ($_GET['pesan'] == "ekstensi") { ?> <div form="alert alert-alarm" role="alarm"> Ekstensi File Harus PNG Dan JPG </div> <?php }elseif ($_GET['pesan'] == "size") { ?> <div class="alert alert-alarm" role="alert"> Size File Tidak Boleh Lebih Dari 2 MB </div> <?php } ?> <?php } ?> <br> <form action="insert_act.php" method="post" enctype="multipart/course-information"> <div grade="mb-three"> <label grade="form-label">Nama Lengkap Siswa</label> <input blazon="text" name="nama_lengkap" form="class-control"> </div> <div form="mb-3"> <label class="course-label">Kelas</label> <input type="text" name="kelas" class="form-control"> </div> <div class="mb-3"> <characterization class="grade-label">Alamat</label> <textarea class="form-command" name="alamat" rows="iii"></textarea> </div> <div class="mb-iii"> <label grade="form-label">Pas Foto</label> <input type="file" name="pas_foto" grade="form-control"> </div> <div class="mb-3"> <button class="btn btn-success" type="submit">Submit</push> <a href="index.php" form="btn btn-danger">Kembali</a> </div> </form> </div> </body> </html>
Lihat pada tag form kita berikan activeness atau data ini akan diolah di file mana dan disitu saya buat bahwa information yang dikirim oleh form akan diolah pada file insert_act.php. sekarang buat lah file dengan nama insert_act.php lalu ketikan lawmaking seperti dibawah ini.
insert_act.php
<?php // Menghubungkan file ini dengan file database include 'koneksi.php'; // Mengambil data dari form lalu ditampung didalam variabel $nama_lengkap = $_POST['nama_lengkap']; $kelas = $_POST['kelas']; $alamat = $_POST['alamat']; $foto_nama = $_FILES['pas_foto']['proper noun']; $foto_size = $_FILES['pas_foto']['size']; // Mengecek apakah file lebih besar 2 MB atau tidak if ($foto_size > 2097152) { // Jika File lebih dari ii MB maka akan gagal mengupload File header("location:insert.php?pesan=size"); }else{ // Mengecek apakah Ada file yang diupload atau tidak if ($foto_nama != "") { // Ekstensi yang diperbolehkan untuk diupload boleh diubah sesuai keinginan $ekstensi_izin = array('png','jpg','jepg'); // Memisahkan nama file dengan Ekstensinya $pisahkan_ekstensi = explode('.', $foto_nama); $ekstensi = strtolower(end($pisahkan_ekstensi)); // Nama file yang berada di dalam direktori temporer server $file_tmp = $_FILES['pas_foto']['tmp_name']; // Membuat angka/huruf acak berdasarkan waktu diupload $tanggal = md5(engagement('Y-g-d h:i:southward')); // Menyatukan angka/huruf acak dengan nama file aslinya $foto_nama_new = $tanggal.'-'.$foto_nama; // Mengecek apakah Ekstensi file sesuai dengan Ekstensi file yg diuplaod if(in_array($ekstensi, $ekstensi_izin) === true) { // Memindahkan File kedalam Binder "FOTO" move_uploaded_file($file_tmp, 'foto/'.$foto_nama_new); // Query untuk memasukan data kedalam tabular array SISWA $query = mysqli_query($koneksi, "INSERT INTO siswa VALUES ('','$nama_lengkap', '$kelas', '$alamat', '$foto_nama_new')"); // Mengecek apakah data gagal diinput atau tidak if($query){ header("location:insert.php?pesan=berhasil"); } else { header("location:insert.php?pesan=gagal"); } } else { // Jika ekstensinya tidak sesuai dengan apa yg kita tetapkan maka error header("location:insert.php?pesan=ekstensi"); } }else{ // Apabila tidak ada file yang diupload maka akan menjalankan lawmaking dibawah ini $query = mysqli_query($koneksi, "INSERT INTO siswa(siswa_nama, siswa_kelas, siswa_alamat) VALUES ('$nama_lengkap', '$kelas', '$alamat')"); // Mengecek apakah information gagal diinput atau tidak if($query){ header("location:insert.php?pesan=berhasil"); } else { header("location:insert.php?pesan=gagal"); } } } ?>
Penjelasan Singkat
Sebenarnya saya sudah membuat penjelasanya didalam lawmaking tersebut dan saya buat didalam tag comentar. Jadi saya hanya menjelaskan inti-intinya saja agar tidak kepanjangan.
Hal yang paling pertama, kita harus menampung data yang sudah dikirim oleh form kedalam sebuah variable dan karena pada form kita menggunakan method post jadi kita menangkap datanya dengan menggunakan Global Variabel Mail service dan penamaan Global variable post harus sesuai dengan atribut proper name pada tag input didalam form seperti yang ditunjukan pada code dibawah ini.
// Mengambil data dari class lalu ditampung didalam variabel $nama_lengkap = $_POST['nama_lengkap']; $kelas = $_POST['kelas']; $alamat = $_POST['alamat']; $foto_nama = $_FILES['pas_foto']['proper noun']; $foto_size = $_FILES['pas_foto']['size'];
Untuk menangkap data file, kita harus menggunakan global variable $_FILES ya teman-teman.
if ($foto_size > 2097152) {}
Pada lawmaking diatas kita mengecek size pada filenya, jika lebih dari 2 MB maka akan ditolak tapi kalau kurang dari 2 MB maka programme akan berjalan semestinya.
if ($foto_nama != "") { Truthful }else{ Imitation }
Diatas kita mengecek apakah variable foto_nama ada isinya atau tidak. Karenakan kadang user tidak ingin mengupload fotonya nah kalau tidak di isi nanti nilainya jadi undefined atau kosong dan kita harus membuat kondisi seperti itu.
- Tutorial PHP Pemula Part 26 : Cara Membuat Login Multi User Ajax Menggunakan PHP, Sweetalert Dan IziToast
- Tutorial PHP Pemula Part 25 : Cara Menggunakan Plugin DataTables Dengan PHP Dan MYSQLi
Jika variable foto_nama ada isinya maka akan menghasilkan nilai TRUE yang nanti akan menjalankan fungsi didalamnya jika kosong maka akan menghasilkan nilai False yang nanti akan menjalankan fungsi didalamnya.
Membuat Form Untuk Edit Data Dan Memproses Data Dari Form
Tadi kita sudah berhasil membuat form tambah data beserta memproses data dari grade nya dan sekarang kita akan membuat untuk mengedit data yang sudah kita tambahkan tadi. Sekarang buatlah file dengan nama edit.php lalu ketikkanlah code seperti dibawah ini.
Edit.php
<?php include 'koneksi.php'; if (isset($_GET['id'])) { if ($_GET['id'] != "") { $id = $_GET['id']; $query = mysqli_query($koneksi,"SELECT * FROM siswa WHERE id_siswa='$id'"); $row = mysqli_fetch_array($query); }else{ header("location:index.php"); } }else{ header("location:index.php"); } ?> <!DOCTYPE html> <html lang="en"> <head> <!-- Required meta tags --> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-calibration=i"> <!-- Bootstrap CSS --> <link href="https://cdn.jsdelivr.net/npm/bootstrap@v.0.0-beta3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-eOJMYsd53ii+scO/bJGFsiCZc+5NDVN2yr8+0RDqr0Ql0h+rP48ckxlpbzKgwra6" crossorigin="anonymous"> <championship>Cara Membuat Grime Upload File Menggunakan PHP Dan MySQLi - belajarwithib</title> </head> <body> <div class="container mt-5 "> <center class="mb-v" ><h2>Cara Membuat Grime Upload File Menggunakan PHP Dan MySQLi - belajarwithib</h2></center> <hr> <form action="edit_act.php" method="mail" enctype="multipart/class-data"> <div class="mb-3"> <characterization class="form-label">Nama Lengkap Siswa</characterization> <input type="text" name="nama_lengkap" class="class-control" value="<?php echo $row['siswa_nama']; ?>" > <input type="hidden" proper noun="id" grade="form-control" value="<?php repeat $row['id_siswa']; ?>" > </div> <div form="mb-3"> <label class="grade-label">Kelas</characterization> <input blazon="text" name="kelas" class="form-control" value="<?php echo $row['siswa_kelas']; ?>"> </div> <div class="mb-3"> <characterization class="grade-label">Alamat</label> <textarea form="form-control" name="alamat" rows="iii"><?php repeat $row['siswa_alamat']; ?></textarea> </div> <div course="mb-3"> <label form="grade-label">Pas Foto</label> <input blazon="file" name="pas_foto" class="form-control"> <br> <?php if ($row['siswa_foto'] == "") { ?> <img src="https://via.placeholder.com/500x500.png?text=PAS+FOTO+SISWA" style="width:100px;height:100px;"> <?php }else{ ?> <img src="foto/<?php echo $row['siswa_foto']; ?>" way="width:100px;acme:100px;"> <?php } ?> </div> <div form="mb-3"> <button class="btn btn-success" blazon="submit">Submit</button> <a href="index.php" class="btn btn-danger">Kembali</a> </div> </form> </div> </body> </html>
Penjelasan Singkat
Lawmaking diatas sama halnya seperti file insert.php namun bedanya kita harus mengambil data id dari url lalu kita menampungnya didalam variable kemudian kita memanggil information didalam database sesuai ID yang tertampung didalam database. Seperti code dibawah ini.
<?php include 'koneksi.php'; if (isset($_GET['id'])) { if ($_GET['id'] != "") { $id = $_GET['id']; $query = mysqli_query($koneksi,"SELECT * FROM siswa WHERE id_siswa='$id'"); $row = mysqli_fetch_array($query); }else{ header("location:index.php"); } }else{ header("location:index.php"); } ?>
Kita mengecek dulu apakah data ID yang terkirim atau tidak, jika tidak ada id yang terkirim maka akan dikembalikan ke halaman index.php jika ada maka ia akan menjalankan fungsi yang lainnya. Namun kita mengecek lagi, apakah param id nya sama dengan kosong atau tidak, jika kosong maka akan dikembalikan kehalaman alphabetize.php jika ada isi nya maka akan disesuaikan apakah ada data yang sesuai dengan ID yang berada di URL.
Nah karena kita ingin mengirimkan data ID kedalam file proses data maka kamu harus menambahi tag input ber atribut hidden karena kita akan mengedit data berdasarkan data ID yang berasal dari URL. Seperti code dibawah ini.
<input type="hidden" proper name="id" grade="form-control" value="<?php repeat $row['id_siswa']; ?>" >
Setelah itu buat lah file dengan nama edit_act.php lalu ketikkanlah lawmaking seperti dibawah ini.
edit_act.php
<?php // Menghubungkan file ini dengan file database include 'koneksi.php'; // Mengecek apakah ID ada datanya atau tidak if (isset($_POST['id'])) { if ($_POST['id'] != "") { // Mengambil data dari grade lalu ditampung didalam variabel $id = $_POST['id']; $nama_lengkap = $_POST['nama_lengkap']; $kelas = $_POST['kelas']; $alamat = $_POST['alamat']; $foto_nama = $_FILES['pas_foto']['name']; $foto_size = $_FILES['pas_foto']['size']; }else{ header("location:index.php"); } // Mengecek apakah file lebih besar 2 MB atau tidak if ($foto_size > 2097152) { // Jika File lebih dari 2 MB maka akan gagal mengupload File header("location:index.php?pesan=size"); }else{ // Mengecek apakah Ada file yang diupload atau tidak if ($foto_nama != "") { // Ekstensi yang diperbolehkan untuk diupload boleh diubah sesuai keinginan $ekstensi_izin = array('png','jpg','jepg'); // Memisahkan nama file dengan Ekstensinya $pisahkan_ekstensi = explode('.', $foto_nama); $ekstensi = strtolower(end($pisahkan_ekstensi)); // Nama file yang berada di dalam direktori temporer server $file_tmp = $_FILES['pas_foto']['tmp_name']; // Membuat angka/huruf acak berdasarkan waktu diupload $tanggal = md5(date('Y-m-d h:i:due south')); // Menyatukan angka/huruf acak dengan nama file aslinya $foto_nama_new = $tanggal.'-'.$foto_nama; // Mengecek apakah Ekstensi file sesuai dengan Ekstensi file yg diuplaod if(in_array($ekstensi, $ekstensi_izin) === true) { // Mengambil data siswa_foto didalam table siswa $get_foto = "SELECT siswa_foto FROM siswa WHERE id_siswa='$id'"; $data_foto = mysqli_query($koneksi, $get_foto); // Mengubah information yang diambil menjadi Assortment $foto_lama = mysqli_fetch_array($data_foto); // Menghapus Foto lama didalam folder FOTO unlink("foto/".$foto_lama['siswa_foto']); // Memindahkan File kedalam Folder "FOTO" move_uploaded_file($file_tmp, 'foto/'.$foto_nama_new); // Query untuk memasukan data kedalam table SISWA $query = mysqli_query($koneksi, "UPDATE siswa SET siswa_nama='$nama_lengkap', siswa_kelas='$kelas', siswa_alamat='$alamat', siswa_foto='$foto_nama_new' WHERE id_siswa='$id'"); // Mengecek apakah data gagal diinput atau tidak if($query){ header("location:index.php?pesan=berhasil"); } else { header("location:index.php?pesan=gagal"); } } else { // Jika ekstensinya tidak sesuai dengan apa yg kita tetapkan maka error header("location:index.php?pesan=ekstensi"); } }else{ // Apabila tidak ada file yang diupload maka akan menjalankan lawmaking dibawah ini $query = mysqli_query($koneksi, "UPDATE siswa SET siswa_nama='$nama_lengkap', siswa_kelas='$kelas', siswa_alamat='$alamat' WHERE id_siswa='$id'"); // Mengecek apakah data gagal diinput atau tidak if($query){ header("location:index.php?pesan=berhasil"); }else { header("location:index.php?pesan=gagal"); } } } }else{ // Apabila ID tidak ditemukan maka akan dikembalikan ke halaman alphabetize header("location:index.php"); } ?>
Saya rasa tidak perlu dijelaskan lagi karena penjelasannya juga sama saja dengan sebelumnya cuman bedanya kita juga menganti/menghapus foto yang sebelumnya dengan foto yang baru diupload agar tidak membuat kapasitas spider web kita bertambah karena hal itu.
Nah kita akan menggunakan fungsi unlink pada PHP yang fungsinya sebagai untuk menghapus file secara permanen. Contoh penggunaannya seperti code dibawah ini.
// Mengambil data siswa_foto didalam tabular array siswa $get_foto = "SELECT siswa_foto FROM siswa WHERE id_siswa='$id'"; $data_foto = mysqli_query($koneksi, $get_foto); // Mengubah data yang diambil menjadi Array $foto_lama = mysqli_fetch_array($data_foto); // Menghapus Foto lama didalam folder FOTO unlink("foto/".$foto_lama['siswa_foto']); // Memindahkan File kedalam Folder "FOTO" move_uploaded_file($file_tmp, 'foto/'.$foto_nama_new);
kita mengambil data siswa foto berdasarkan id lalu mengubah nya menjadi array setelah itu kita menghapus filenya menggunakan fungsi unlink jika berhasil dihapus kita langsung memindahkan file yang baru kedalam folder yang sudah kita sesuaikan.
Membuat File Menghapus Data Dari Database
Menghapus information dari database sama halnya seperti kita mengedit data yang dimana kita harus mengambil ID nya terlebih dahulu jika sudah berhasil di ambil kita harus menghapus foto atau file yang kita upload agar tidak memenuhi penyimpanan web kita berdasarkan ID yang sudah diambil setelah itu baru kita bisa menghapus information nya secara permanen.
Buatlah file dengan nama delete.php lalu ketikan code seperti dibawah.
Delete.php
<?php include 'koneksi.php'; if (isset($_GET['id'])) { if ($_GET['id'] != "") { // Mengambil ID diURL $id = $_GET['id']; // Mengambil data siswa_foto didalam table siswa $get_foto = "SELECT siswa_foto FROM siswa WHERE id_siswa='$id'"; $data_foto = mysqli_query($koneksi, $get_foto); // Mengubah data yang diambil menjadi Array $foto_lama = mysqli_fetch_array($data_foto); // Menghapus Foto lama didalam binder FOTO unlink("foto/".$foto_lama['siswa_foto']); // Mengapus data siswa berdasarkan ID $query = mysqli_query($koneksi,"DELETE FROM siswa WHERE id_siswa='$id'"); if ($query) { header("location:alphabetize.php?pesan=hapus"); }else{ header("location:index.php?pesan=gagalhapus"); } }else{ // Apabila ID nya kosong maka akan dikembalikan kehalaman alphabetize header("location:index.php"); } }else{ // Jika tidak ada Information ID maka akan dikembalikan kehalaman index header("location:index.php"); } ?>
Uji Coba Program
Setelah melalui tahapan yang sangat panjang sekarang kita mulai menguji program yang sekarang kita buat.
Tampilan utama
Tampilan Tambah Data
Jika Information Berhasil Ditambah Maka Muncul Warning Yang Diambil Dari URL Untuk Memicunya
Data Berhasil Ditambah
Tampilan Edit Data
Jika Data Berhasil Diubah/Diedit Maka Muncul Alert Yang Diambil Dari URL Untuk Memicunya
Jika Data Berhasil Dihapus Maka Muncul Alert Yang Diambil Dari URL Untuk Memicunya
Selamat kamu berhasil membuat Crud upload file. Tutorial ini bukanlah cara yang baik sedunia dalam membuat CRUD namun saya harap kamu paham akan konsepnya gimana jadi tinggal dirimu sendiri saja yang akan mengembangkan tutorial ini gimana caranya.
File Pendukung Belajar
Download Source Code Cara Membuat CRUD Upload File Menggunakan PHP Dan MySQLi
Semoga Bermanfaat.
mewton-woodbeforavy.blogspot.com
Source: https://www.belajarwithib.my.id/2021/04/cara-membuat-crud-upload-file.html
0 Response to "Php and Mysqli How to Upload Image to Database and Folder"
Post a Comment