Postingan lainnya
Menampilkan hasil query php mysql
misalkan saya punya data di DB seperti ini :
|buku |pensil |polpen |penghapus |
|3 |0 |5 |0 |
bagaimana saya menampilkan outputnya yang nilainya lebih besar dari 0 menjadi seperti ini :
sisa buku = 3
sisa polpen = 5
saya sudah coba seperti ini :
foreach ($data as $key => $value) {
if ($value > 0) {
$output .= "sisa" . $key . "* = " . $value . "\n";
}
}
hasilnya gak sesuai, yg jadi output malah 0 = array.
Mohon petunjuknya, terima kasih.
Tanggapan
hasilnya sekarang seperti apa?
pastikan isi $data sudah sesuai yang kamu mau, coba didebug dulu pakai die/var-dump
hasil outputnya 0 = Array
nope itu hasil akhir, tapi isi $data kamu sebelumnya, coba belajar debug https://sekolahkoding.com/forum/cara-menampilkan-error-debug-di-php-1552899672 trace mundur ke belakang
saya lakukan print_r($data), hasilnya :
Array ( [0] => Array ( [field1] => 0 [0] => 0 [field2] => 3 [1] => 3 [field3] => 0 [2] => 0 [field4] => 17 [3] => 17 [field5] => 2 [4] => 2 [field6] => 0 [5] => 0 [field7] => 29 [6] => 29 [field8] => 1 [7] => 1 [field9] => 0 [8] => 0 [field10] => 0 [9] => 0 [field11] => 5 [10] => 5 [field12] => 0 [11] => 0 [field13] => 4 [12] => 4 [13] => 3 ) )
ditambahkan ke "pertanyaan" ya silahkan diedit, biar yang lain bisa lihat
itu datanya sudah sesuai yang kamu mau atau belum? kalau belum coba diperbaiki lagi kode yang sebelumnya, dari bentuknya kurang jelas, mungkin hamu harus ambil array pertama dulu $data[0]
Mohon maaf, utk penamaan field saya ganti aja biar lebih mudah, dengan nama field1, field2, dst.
dari hasil print_r($data) hasilnya sesuai dengan jawaban saya sebelumnya.
dari hasil print_r($data) tersebut, bagaimana saya mengimplementasikan supaya hasilnya seperti ini :
jumlah field1 = 0. jumlah field2 = 3. jumlah field3 = 0. jumlah field4 = 17. dst.
halo masukkan info info tersebut di "pertanyaan" jadi yang mau bantu bisa lihat langsung
3 Jawaban:
Jawaban Terpilih
Dari informasi hasil print kamu, item-itemnya berada di dalam array[0] , berarti pada saat loop datanya gunakan juga $data[0] contoh
<pre> foreach ($data[0] as $key => $value) { if ($value > 0) { $output .= "sisa" . $key . "* = " . $value . "\n"; } }
die($output); </pre>
Terima kasih atas masukannya mas @hilmanspace, setelah saya jalankan kode tersebut, outputnya jadi seperti ini :
<pre> jumlah field2 = 3. 1 = 3 jumlah field4 = 17. 3 = 17 jumlah field5 = 2. 4 = 2 jumlah field7 = 33. 6 = 33 dst. </pre>
kenapa kok dibaris setelah jawaban yang sesuai, keluar juga outputnya berupa array ke-berapa = valuenya
misalkan field2 ada di array 1 valuenya 3, hasilnya field2 = 3 1 = 3
Tanggapan
masalahnya memang datanya seperti itu. Karena itu yang perlu diperhatikan cara kamu mengambil data sebelumnya
mohon bantuannya mas @hilmanspace, dengan cara saya mengambil data tersebut, gimana seharusnya agar output yang tampil sesuai dengan keinginan? terima kasih
Terima kasih mas jawabannya.. saya pake multiselect query. jadi kurang lebih query nya simple nya seperti ini :
<pre> $buka = $dbcon2->prepare("SELECT (SELECT count(tabel1)) as field1, (SELECT count(tabel2)) as field2, (SELECT count(tabel3)) as field3, (SELECT count(tabel4)) as field4, (SELECT count(tabel5)) as field5 ");
$buka->execute(); $data = $buka->fetchAll();
$output = "Informasi XXX :\n\n";
foreach ($data[0] as $key =&gt; $val) {
if($val &gt; 0) {
$output .= "# *" . $key . "* = " . $val ." Notifikasi". "\n";
}
}
return $output; </pre>
Mohon koreksinya, terima kasih..