hapus isi tabel otomatis

Misalnya saya punya data pada tabel A, Saya ingin data yang sudah ada selama 2 hari akan terhapus otomatis. Sudah cari di google cuma menghapus semua isi tabel, Mohon bantuannya

avatar rara
@rara

19 Kontribusi 5 Poin

Diperbarui 7 tahun yang lalu

11 Jawaban:

itu kayak penjadwalan ya ..?? seperti exxpired pada makanan

avatar maszgalang
@maszgalang

297 Kontribusi 80 Poin

Dipost 7 tahun yang lalu

ikut nimbrung .. ini juga bisa di pake buat time limit bookingan tiket or hotel booking.

avatar Saputroandhi
@Saputroandhi

509 Kontribusi 162 Poin

Dipost 7 tahun yang lalu

kalo ide aneh yang terpikir sih

jika tanggal hari ini - tanggal input => 2 actionya hapus data...

contoh sekarang tanggl 6may and kita input data tanggal 3 jadi

6-3=3 --->> ini udah memenuhi untuk hapus data. tapi kan cuma jalan kalo script di buka ya :D hahahahah

avatar Saputroandhi
@Saputroandhi

509 Kontribusi 162 Poin

Dipost 7 tahun yang lalu

Klo pakai query, querynya bagaimana ya?

avatar rara
@rara

19 Kontribusi 5 Poin

Dipost 7 tahun yang lalu

logika ane juga begitu gan,

klo hanya memperhitungkan tanggalnya saja (waktu di abaikan) bisa menggunakan mysql function DATEDIFF(exp1, exp2) agar gk kehapus semua databasenya, select id data yg lebih dari 2 hari tsb

DELETE FROM `tabelA` WHERE `id` IN (
  SELECT * FROM (
    SELECT `id` FROM `tabelA` WHERE DATEDIFF(CURRENT_DATE,`tgl masuk`) >= 2
  ) AS t2
)

jalankan file ini melalui cron job di server jadi script berjalan secara otomatis moga bisa membantu

avatar maddock
@maddock

119 Kontribusi 115 Poin

Dipost 7 tahun yang lalu

Masih bingung penempatan, klo query saya seperti ini gimana naruhnya?

function hapus_data($id){ $query= "DELETE FROM blog WHERE id=$id"; return run($query); }

avatar rara
@rara

19 Kontribusi 5 Poin

Dipost 7 tahun yang lalu

klo dengan query yg saya kasi, jadinya kurang lebih spt ini:

$conn = new MySQLI($db_host, $db_user, $db_pass, $db_name);
if($conn->connect_errno){
  die ("ERROR: ".$conn->connect_errno);
};

function hapus_data(){
   $sql ="DELETE FROM tabelA WHERE id IN (SELECT * FROM(
          SELECT id FROM tabelA WHERE DATEDIFF(CURRENT_DATE, 'tgl masuk') >= 2) AS t2)";

   if($conn->query($sql) === true){
      return "Data berhasil dihapus";
   } else {
      return "Hapus data gagal";
   }
}

avatar maddock
@maddock

119 Kontribusi 115 Poin

Dipost 7 tahun yang lalu

klo sudah pakai query itu, tidak bisa dihapus manual ya mas, klo mau nyoba dalam waktu satu menit bagaimana? jd bisa lsg liat hasilnya berhasil atau tdk.

avatar rara
@rara

19 Kontribusi 5 Poin

Dipost 7 tahun yang lalu

query sql yg saya kasi itu akan otomatis mencari data yg >= 2 hari lamanya trus menghapusnya jd gk perlu pilih manual. coba aja dulu query tsb di localhost, sy sudah coba dan berhasil klo mau dijadwalkan, jalanin scriptnya setiap 1x hari sekali, waktunya pas 12 malem/ditentukan sendiri

avatar maddock
@maddock

119 Kontribusi 115 Poin

Dipost 7 tahun yang lalu

kalau mau dinamis coba aja tambahkan colom tanggal kadaluarsa di tabel A itu. jadi ntar querynya kalau data di colom tgl kadaluarsanya sama dengan hari ini (sysdate) maka data akan dihapus, jadi misal mau ganti batas waktunya gx perlu bongkar codingnya...

avatar MzNit
@MzNit

9 Kontribusi 3 Poin

Dipost 7 tahun yang lalu

pakai scheduler atau cronjob yang akan mengeksekusi file php(file php utk menghapus data ditable), set waktu penghapusanya.

avatar hamdanidev
@hamdanidev

47 Kontribusi 12 Poin

Dipost 7 tahun yang lalu

Login untuk ikut Jawaban