cara menampilkan satu data di relasi

disini saya akan menampilkan data pemenang kelompok yang mana ketuakel terdapat pada tabel kelompokWhats-App-Image-2022-09-07-at-08-21-28.jpgWhatsApp Image 2022-09-07 at 08.21.28.jpegsaat ingin menampilkannya saya ingin ketuakel hanya muncul satu kali jika data pemenang lebih dari 1, seperti gambar di bawahWhats-App-Image-2022-09-07-at-11-35-12.jpgWhatsApp Image 2022-09-07 at 11.35.12.jpegtapi, ini malah ketuakel muncul beberapa kali juga seperti gambar ini
image.pngimage.pnguntuk sc nya masih seperti ini
$idkel = $_GET['idkel'];
										$ambilsemuadatabarang = mysqli_query($conn, "select * from pemenangkel p, kelompok k, barang b 
										where k.idkel='$idkel' and k.idkel = p.idkel and b.kode = p.kode ");
										$i = 1; 
										while ($data = mysqli_fetch_array($ambilsemuadatabarang)){
											
											$idkel = $data['idkel'];
											$ketuakel = $data['ketuakel'];
											$pemenang = $data['pemenang'];
											$kode = $data['kode'];
											$nbarang = $data['nbarang'];
											$hbarang = $data['hbarang'];
											$idpem = $data['idpem'];
											$bulan = $data['bulan'];
											$tahun = $data['tahun'];
avatar farizkusumahdinata

@farizkusumahdinata

3 Kontribusi 0 Poin


Jawaban Terpilih

Kalau aku nyimak bedasarkan gambar ke-2 dan terakhir.

Berarti pengen menampilkan list kelompok dimana tiap ketua dari masing2 kelompok tampil dengan tulisan gede. Tapi tetap menampilkan anggotanya tepat dibawah nama ketua ya?

Gak bisa kepikiran salahnya dimana .. tapi cuman bisa nawarin alternatif query mysql nya. Menggunakan join.

SELECT 
* 
FROM 
pemenangkel p
JOIN kelompok k ON k.idkel = p.idkel 
JOIN barang b ON b.kode = p.kode
WHERE
k.idkel="$idkel"

Oh dan coba ganti loop nya menggunakan foreach daripada while.
foreach(mysqli_fetch_array($ambilsemuadatabarang) as $data){
  .
  .
}

avatar GrennKren

@GrennKren

61 Kontribusi 45 Poin

Jawaban

mungkin bisa coba menggunakan GROUP
select * from pemenangkel p, kelompok k, barang b 
where 
k.idkel='$idkel' and k.idkel = p.idkel and b.kode = p.kode GROUP BY p.idpem
group by nya disesuaikan saja dengan yang kamu mau
semoga membantu ^^
avatar mitsuky06

@mitsuky06

105 Kontribusi 51 Poin

  • masih belum kak, pake grup by malah jadi cuma satu data yang muncul - @farizkusumahdinata
  • berarti mungkin bukan p.idpem,,, coba aja di ganti misal k.idkel - @mitsuky06


Kalau aku nyimak bedasarkan gambar ke-2 dan terakhir.

Berarti pengen menampilkan list kelompok dimana tiap ketua dari masing2 kelompok tampil dengan tulisan gede. Tapi tetap menampilkan anggotanya tepat dibawah nama ketua ya?

Gak bisa kepikiran salahnya dimana .. tapi cuman bisa nawarin alternatif query mysql nya. Menggunakan join.

SELECT 
* 
FROM 
pemenangkel p
JOIN kelompok k ON k.idkel = p.idkel 
JOIN barang b ON b.kode = p.kode
WHERE
k.idkel="$idkel"

Oh dan coba ganti loop nya menggunakan foreach daripada while.
foreach(mysqli_fetch_array($ambilsemuadatabarang) as $data){
  .
  .
}

avatar GrennKren

@GrennKren

61 Kontribusi 45 Poin


Login untuk gabung berdiskusi