Postingan lainnya
Kelas Premium!
Belajar Javascript untuk website
Gunakan kupon "mulaijs" untuk diskon 75 ribu!
Proses pencarian datatable yang tidak berhenti ketika data tidak ditemukan
Bismillah.... Assalamualaikum teman2...
Saya punya kasus ketika menggunakan Datatable ajax & php untuk menampilkan data. Ketika saya menggunakan metode :
$data = mysqli_fetch_all($sql_data, MYSQLI_ASSOC)
Untuk menampung data array sql kedalam $data, proses ini berhasil menampilkan data, dan ketika dilakukan pencarian menggunakan filter pada datatable dan data tidak ditemukan maka proses pencarian akan berhenti dan menampilkan pesan bahwa "Data tidak ditemukan".
Lain halnya ketika saya menggunakan metode:
while ($r = mysqli_fetch_array($sql_data)) {
$rw['sId'] = $r['sId'];
$rw['dBarang'] = $r['dBarang'];
$rw['mNama'] = $r['mNama'];
$rw['mMerek'] = $r['mMerek'];
$rw['dHarga'] = $r['dHarga'];
$rw['dHarga_B'] = $r['dHarga_B'];
$rw['dHarga_C'] = $r['dHarga_C'];
$rw['jenis'] = $r['jenis'];
$rw['mJenis'] = $r['mJenis'];
$data[]=$rw;
}
Ketika saya menggunakan metode diatas, data tetap berhasil tampil dengan benar dan sesuai, namun masalahnya ketika saya melakukan pencarian menggunakan filter dari datatable dan ketika datanya tidak ditemukan maka proses pencarian pada datatable akan terus menampilkan pesan "Sedang proses pencarian", padahal data tersebut tidak ada.
Beda halnya dengan ketika menggunakan metode pertama. Awalnya saya berfikir mungkin output data array dari metode pertama & kedua berbeda.. Namun ketika saya cek output arraynya tetap sama baik metode pertama maupun kedua.. Selain itu script keseluruhan yg saya gunakan sama, kecuali pada proses menyimpan hasil array query ke variabel $data sebagaimana yg saya paparkan di atas.....
Pertanyaan saya, apa ada teman2 yg pernah mengalami kondisi sprti ini?? kalau ada mohon bantuannya . . .
Terima kasih sebelumnya atas bantuan & perhatiannya...
6 Jawaban:
kayaknya gara2 $data ada di dalam while block nya itu
Tanggapan
Kalau $data[] nya sya keluarin dri while nya.. datanya yg tampil cuman satu mas....
oh sorry kemungkinan itu bisa dari waktu pengujiannya, bisa dikasih liat kode pengujiannya ?
oiya sekedar saran btw harusnya itu bisa lebih ringkes jadi kyk gini <pre>
$data = [];
while ($row = mysqli_fetch_array($sql_data, MYSQLI_ASSOC)) { $data[] = $row; }
var_dump($data);
</pre>
Kode pengujiannya kemarin saya menggunakan output json <pre> print_r(json_encode($data)); </pre> dan menghasilkan keluaran yang sama, baik menggunakan mysqli_fetch_all & mysqli_fetch_array disertai perulangan....
Owh iya saya menggunakan metode mysqli_fetch_array disertai while sendiri, karena data yg saya tampung ke array tersebut saya olah terlebih dahulu, ada beberapa kondisi dan proses yg harus sya lakukan dari data yg dihasilkan dari query tersebut namun tdk sya tampilkan di code di atas... Maka dari itu saya tidak menggunakan metode while dan $data=$row...
Owh iya saya sudah mencoba mencetak output dari data tersebut menggunakan fungsi var_dump yg d sarankan sma mas naufal, dan tetap menghasilkan output yg sama walaupun satu menggunakan fetch_all dan satu menggunakan while disertai fetch_array..
*Gambar menggunakan metode fetch_all : Code: [link] https://drive.google.com/open?id=1pZeuW3RJmJR_zVUX9efKua-RqAoXCUn8 [/link] Output: [link] https://drive.google.com/open?id=1GJ7ilG3_HLguhH9mDkuC66DtUJuGA55t [/link]
*Gambar menggunakan fetch_array & while : Code: <a href=' https://drive.google.com/open?id=1BuzAB8Hck577bhCOViIDoOJd_pt59w2c '> https://drive.google.com/open?id=1BuzAB8Hck577bhCOViIDoOJd_pt59w2c </a> Output: <a href=' https://drive.google.com/open?id=1PkxbxPprrboGBnP5ckdNAmDyLsGCGvOv '> https://drive.google.com/open?id=1PkxbxPprrboGBnP5ckdNAmDyLsGCGvOv </a>
ini masih belum selesai mas ? kalau belum saya coba jawab lagi.
coba kalo pake cara mysqli_fetch_array terus cari pencarian datatable yg gak ada, sambil discriptnya selipin console.log(data), jadi ketauan tuh hasilnya kyk gimana
Jawaban Terpilih
Alhamdulillah udah mas... Ternyata kalau menggunakan fetch_all jika data tdk ditemukan/kosong, otomatis $data=array(0) yg menyebabkan si datatablenya berhenti berproses krna data arraynya udah 0 dan tampilkan pesan "Data tdk ditemukan"... Beda halnya jika saya kemrin menggunakan fetch_array.. Jika data tdk ditemukan maka $data=null karena $data tdk mendapatkan inpt selama proses while.. Jdi dia brnilai null, dan otomatis si datatable terus menampilkan pesab "procrssing" krna masih belum menemukan nilai dari $data...
Solusinya sendiri kmrin sya cmn tambahkan inisialisasi $data=array() jika jmlh num_rows dri querynya bernilai 0.. Sehingga jika data tdk ditemukan otomatis $data bernilai array(0)
Semoga bisa dimengerti mas.. Hihihi Dan terima kasih banyk juga atas bantuan dan perhatiannya hihihi
yaya siap mas, btw saya ga bantu apa2 loh wkwk XD, lagian saya juga penasaran dengan masalahnya, sukses dah buat projectnya
Tanggapan
Wkwkw membantu kok mas... Dari mas baru tau bisa cetak output variabel pake fungsi var_dump() hihihi...