Saat hapus data, eror di bagian tampilan "Deprecated: substr(): "

Hallo selamat pagi teman2, saya mau tanya, saya ada masalah di bagian kode otomatis. jadi kode nya itu tampil, nah saat saya hapus data muncul eror di bagian tampilannya. trmksih..

kode
<?php
                            $q          = "SELECT max(kode_buku) AS maxKode FROM tb_perpustakaan";
                            $hasil      = mysqli_query($con, $q);
                            $data       = mysqli_fetch_array($hasil);
                            $kodeBuku   = $data['maxKode'];

                            // ambil angka/bilangan
                            $noUrut     = (int) substr($kodeBuku, 3, 3);

                            // bilangan ini di tambah satu
                            $noUrut++;

                            // membentuk kode baru
                            $char       = "B-";
                            $kode       = $char . sprintf("%03s", $noUrut);
                            // echo $kode;
                        ?>
                        <form action="" method="POST" enctype="multipart/form-data">
                            <b>Kode Buku:</b>
                            <input type="text" name="kode_buku" value="<?php echo $kode ?>" class="form-control" readonly><br /><br />

tampilan
Screenshot-2022-09-22-101411.jpgScreenshot 2022-09-22 101411.jpg






avatar novaje

@novaje

22 Kontribusi 2 Poin

  • koding error nya apa ya ?? (maksudnya, yang di file upload line 143 itu apa ?) - @mitsuky06
  • eror 143 itu yg di bagian $noUrut nya bg.. - @novaje


Jawaban

Yang substr nya. Ku tebak value2 nya kayak gini kan ya "B-123"

Jadi parameter kedua substr nya harusnya dimulai 2 bukan 3.
substr($kodeBuku, 2, 3)

Soalnya index dimulai dari 0
avatar GrennKren

@GrennKren

60 Kontribusi 44 Poin

  • bisa bg. tp wktu data nya dihapus jd eror dia bg - @novaje
  • Error kek gmn. Msh sama errorny? - @GrennKren
  • Kalau yg itu mah buat aja pengecekan pake function isset ($data) atau mungkin empty($data) kalau gak salah - @GrennKren

Tampikan semua |


Function PHP yang bernama substr() sampai dengan saat ini belum berstatus 'deprecated'.
Kemungkinan besar Anda ada menggunakan method JS yang bernama substr() di suatu tempat.
Method JS yang bernama substr() memang sudah berstatus 'deprecated' dan Anda harus menggantinya dengan substring(). Cara pemakaiannya sedikit berbeda, parameter ke-3 dari substr() adalah panjang sub string yang diinginkan, sedangkan parameter ke-3 dari substring() adalah end position yang diinginkan.

EDIT: Sorry. Kemarin screenshot anda tidak bisa muncul di komputer saya. Anda juga tidak menyebut pesan errornya dengan lengkap di bagian judul.

Deprecated substr() passing null to parameter #1 of type string is deprecated.

Kemungkinan besar anda menjalankan koding di atas saat tabel masih kosong. Jadi apa isi dari 'maxKode'? Masih null. Akibatnya error. Harusnya pakai if dulu untuk mengecek apakah $kodeBuku empty atau tidak. Jika empty, maka nomor urut dikasih 1; jika tidak empty, barulah lakukan langkah-langkah di bawah.

NB: benar.. substr anda harusnya isi angka 2 di parameter #2 nya. Tetapi bukan itu sih penyebab 'deprecated' nya

avatar danielwilianto

@danielwilianto

4 Kontribusi 3 Poin


Login untuk gabung berdiskusi