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.

avatar miamiu
@miamiu

25 Kontribusi 1 Poin

Diperbarui 5 tahun yang lalu

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 =&gt; $value) { if ($value &gt; 0) { $output .= "sisa" . $key . "* = " . $value . "\n"; } }

die($output); </pre>

avatar hilmanski
@hilmanski

2686 Kontribusi 2135 Poin

Dipost 5 tahun yang lalu

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

avatar miamiu
@miamiu

25 Kontribusi 1 Poin

Dipost 5 tahun yang lalu

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-&gt;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-&gt;execute(); $data = $buka-&gt;fetchAll();

$output = "Informasi XXX :\n\n";

foreach ($data[0] as $key =&amp;gt; $val) {

     if($val &amp;gt; 0) {
        $output .= &quot;# *&quot; . $key . &quot;* = &quot; . $val .&quot; Notifikasi&quot;. &quot;\n&quot;;
     }
}

return $output; </pre>

Mohon koreksinya, terima kasih..

avatar miamiu
@miamiu

25 Kontribusi 1 Poin

Dipost 5 tahun yang lalu

Login untuk ikut Jawaban