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.jpg

avatar novaje
@novaje

28 Kontribusi 3 Poin

Diperbarui 1 tahun yang lalu

Tanggapan

koding error nya apa ya ?? (maksudnya, yang di file upload line 143 itu apa ?)

eror 143 itu yg di bagian $noUrut nya bg..

2 Jawaban:

<div>Yang substr nya. Ku tebak value2 nya kayak gini kan ya "B-123"<br><br>Jadi parameter kedua substr nya harusnya dimulai 2 bukan 3.</div><pre>substr($kodeBuku, 2, 3)</pre><div><br>Soalnya index dimulai dari 0</div>

avatar GrennKren
@GrennKren

62 Kontribusi 47 Poin

Dipost 1 tahun yang lalu

Tanggapan

bisa bg. tp wktu data nya dihapus jd eror dia bg

Error kek gmn. Msh sama errorny?

Kalau yg itu mah buat aja pengecekan pake function isset ($data) atau mungkin empty($data) kalau gak salah

$noUrut++; di bawah sini bg di tambhin isset nya? if(isset($data) gitu bg?

kan yang kolom maxKode pengen benaran kosong data nya tapi lanjut. Jadi mulai dari $kodeBuku = ... sampai $kode = ... dimasukkin ke dalam if isset($data)

tambahin juga else nya buat ngasih value $kode = ""

if(isset($data)){ $kodeBuku = $data['maxKode']; $noUrut = (int) substr($kodeBuku, 2, 3); $noUrut++; $char = "B-"; $kode = $char . sprintf("%03s", $noUrut); } else { echo "Data Tidak Masuk"; }

gini kah bg?

<div>Function PHP yang bernama substr() sampai dengan saat ini belum berstatus 'deprecated'.<br>Kemungkinan besar Anda ada menggunakan method JS yang bernama substr() di suatu tempat.<br>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.<br><br>EDIT: Sorry. Kemarin screenshot anda tidak bisa muncul di komputer saya. Anda juga tidak menyebut pesan errornya dengan lengkap di bagian judul.<br><br>Deprecated substr() passing null to parameter #1 of type string is deprecated.<br><br>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.<br><br>NB: benar.. substr anda harusnya isi angka 2 di parameter #2 nya. Tetapi bukan itu sih penyebab 'deprecated' nya<br><br></div>

avatar danielwilianto
@danielwilianto

16 Kontribusi 17 Poin

Dipost 1 tahun yang lalu

Tanggapan

Okeee sudahh clear bg :)

Login untuk ikut Jawaban