У меня проблема с отображением данных из 2 таблиц
Table 1 (kegiatan): id_kgt (PK), nama_kgt,ket, tg_mulai, tg_akhir, nm_pengirim, indi01, indi02, indi03, indi04, indi05, indi06, indi07, indi08, indi09, indi010,
Table 2 (pilihan): kdpilih (PK), nmpilih
kdpilih contain number which linked with indi01 to indi010
nmpilih contain plain text, ex: kdpilih: 1 = nmpilih: car
Я уже создаю скрипт, но проблема в том, что когда кто-то вводит данные меньше или больше 3-х полей (indi01, indi02, indi03) со страницы ввода, он ничего не показывает. Есть ли решение, чтобы это исправить? Мой скрипт таблиц соединения неправильный? Итак, я хочу показать все данные, хотя данные на странице входа только 1, 2, 3 или т. Д.
Это мой сценарий, любая помощь будет очень полезна. Спасибо
<?php
$sql = "SELECT a.id_kgt
, a.nama_kgt
, a.ket
, a.tg_mulai
, a.tg_akhir
, a.nm_pengirim
, a.file
, b.nmpilih AS indi01
, c.nmpilih AS indi02
, d.nmpilih as indi03
FROM kegiatan a
JOIN pilihan b
ON b.kdpilih = a.indi01
JOIN pilihan c
ON c.kdpilih = a.indi02
JOIN pilihan d
ON d.kdpilih = a.indi03
ORDER
BY a.id_kgt ASC
";
$result = mysqli_query($conn, $sql);
$no = 1;
if (mysqli_num_rows($result) > 0)
{
while ($data = mysqli_fetch_array($result))
{
echo "<tr>
<td>".$data['id_kgt']."</a></td>
<td>".$data['nama_kgt']."</a></td>
<td>".$data['ket']."</td>
<td>".tglindo($data['tg_mulai'])."</td>
<td>".tglindo($data['tg_akhir'])."</td>
<td>".$data['indi01'].", ".$data['indi02'].", ".$data['indi03']."</td>
<td>".$data['nm_pengirim']."</td>
<td>
<a href='".$data['file']."'>Download</a>
<a href='kegiatan_ubah.php?id_file=$data[id_kgt]'>Ubah</a>
<a href='kegiatan_hapus.php?id_file=$data[id_kgt]'>Hapus</a>
</td>
</tr>";
$no++;
}
}
else
{
echo "No data.";
}
Если вы хотите, чтобы данные в других таблицах не выполнялись, вы можете вместо этого использовать левое соединение.
ура
РЕШИТЬ
я использую эту магию:
"SELECT a.id_kgt, a.nama_kgt, a.ket, a.tg_mulai, a.tg_akhir, a.nm_pengirim, a.file,
b.nmpilih as indi01, c.nmpilih as indi02, d.nmpilih as indi03, e.nmpilih as indi04, f.nmpilih as indi05,
g.nmpilih as indi06, h.nmpilih as indi07, i.nmpilih as indi08, j.nmpilih as indi09, k.nmpilih as indi010
FROM kegiatan a
LEFT JOIN pilihan b ON b.kdpilih = a.indi01 LEFT JOIN pilihan c ON c.kdpilih = a.indi02
LEFT JOIN pilihan d ON d.kdpilih = a.indi03 LEFT JOIN pilihan e ON e.kdpilih = a.indi04
LEFT JOIN pilihan f ON f.kdpilih = a.indi05 LEFT JOIN pilihan g ON g.kdpilih = a.indi06
LEFT JOIN pilihan h ON h.kdpilih = a.indi07 LEFT JOIN pilihan i ON i.kdpilih = a.indi08
LEFT JOIN pilihan j ON j.kdpilih = a.indi09 LEFT JOIN pilihan k ON k.kdpilih = a.indi010
ORDER BY a.id_kgt ASC"