【发布时间】:2015-08-19 22:28:26
【问题描述】:
我在显示 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.";
}
【问题讨论】:
-
我在 sql 中看不到任何受用户输入影响的内容 - 即:没有 where 子句 - 那么这个问题在哪里/如何表现出来?
-
我不使用 where 因为我想显示那 2 个表中的所有数据,但实际上它只显示 db 中的 3 个字段:indi01、indi02、indi03