我在显示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.";
}
答案 0 :(得分:0)
如果要显示其他表上的数据不进行连接,可以考虑使用左连接。
干杯
答案 1 :(得分:0)
解决 我用这个魔法:
"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"