在php mysql上用2个表显示数据
我在显示两个表中的数据时遇到问题在php mysql上用2个表显示数据,php,mysql,jointable,Php,Mysql,Jointable,我在显示两个表中的数据时遇到问题 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
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.";
}
<代码> 如果要显示其他表上的数据不做连接,则可以考虑左联接。< /P> 干杯已解决 我用这个魔法:
"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"
我在sql中看不到任何受用户输入影响的内容-即:没有where子句-那么这个问题在何处/如何表现出来?我不使用where,因为我想显示2个表中的所有数据,但事实上它只显示db中的3个字段:indi01、indi02、INDI03当我使用left join时,它在pilihan表上显示来自kdpilih的数字。先生,你能告诉我正确的问题吗?