有人能帮我解决php中的问题吗??当我使用join4表或更多表显示表记录时,为什么我得到了多个记录??在表格中,它获得了2条记录,但在(网络上)显示中,它变成了6条记录??为什么?我使用的脚本是错误的还是什么???这里的脚本:
<div class="modal-body row">
<?php
//$id = $_GET['nip'];
$qry="
select
tb_dosen.nip, tb_dosen.nidn_nidk, tb_dosen.nama, tb_dosen.jenis_kelamin, tb_dosen.alamat, tb_dosen.telepon, tb_dosen.agama, tb_dosen.pendidikan_terakhir, tb_dosen.jabatan, tb_dosen.email, tb_dosen.foto,
tb_bimbingan.no_bimbingan, tb_bimbingan.nip, tb_bimbingan.tahun_bimbingan, tb_bimbingan.nama_mahasiswa,tb_bimbingan.judul,
tb_pendidikan.no_pendidikan, tb_pendidikan.nip, tb_pendidikan.tahun_lulus, tb_pendidikan.jenjang, tb_pendidikan.gelar, tb_pendidikan.nama_universitas, tb_pendidikan.bidang_ilmu, tb_pendidikan.no_ijasah,
tb_buku.no_buku, tb_buku.nip, tb_buku.penulis, tb_buku.judul_buku, tb_buku.penerbit_buku, tb_buku.tahun_terbit,
tb_jabatan_ak.no_jabatan, tb_jabatan_ak.nip, tb_jabatan_ak.tahun_diangkat, tb_jabatan_ak.posisi, tb_jabatan_ak.no_sk,
tb_jafung.no_jafung, tb_jafung.nip, tb_jafung.tahun_jafung, tb_jafung.jafung, tb_jafung.sk_jafung, tb_jafung.sk_sertifikasi,
tb_penelitian.no_penelitian, tb_penelitian.nip, tb_penelitian.tahun_penelitian, tb_penelitian.judul_penelitian, tb_penelitian.tempat_publikasi,
tb_pengajaran.no_pengajaran, tb_pengajaran.nip, tb_pengajaran.tahun_akademik, tb_pengajaran.semester, tb_pengajaran.mata_kuliah, tb_pengajaran.sk_mengajar,
tb_penghargaan.no_penghargaan, tb_penghargaan.nip, tb_penghargaan.tanggal_penghargaan, tb_penghargaan.jenis_penghargaan, tb_penghargaan.pemberi,
tb_pkm.no_pkm, tb_pkm.nip, tb_pkm.tahun_pkm, tb_pkm.judul_pkm, tb_pkm.tempat_pkm, tb_pkm.publikasi_pkm,
tb_seminar.no_seminar, tb_seminar.nip, tb_seminar.judul_seminar, tb_seminar.sebagai, tb_seminar.jenis_seminar, tb_seminar.kota, tb_seminar.tanggal_seminar
from tb_dosen
INNER JOIN tb_bimbingan ON tb_bimbingan.nip = tb_dosen.nip
INNER JOIN tb_pendidikan ON tb_pendidikan.nip = tb_dosen.nip
INNER JOIN tb_buku ON tb_buku.nip = tb_dosen.nip
INNER JOIN tb_jabatan_ak ON tb_jabatan_ak.nip = tb_dosen.nip
INNER JOIN tb_jafung ON tb_jafung.nip = tb_dosen.nip
INNER JOIN tb_penelitian ON tb_penelitian.nip = tb_dosen.nip
INNER JOIN tb_pengajaran ON tb_pengajaran.nip = tb_dosen.nip
INNER JOIN tb_penghargaan ON tb_penghargaan.nip = tb_dosen.nip
INNER JOIN tb_pkm ON tb_pkm.nip = tb_dosen.nip
INNER JOIN tb_seminar ON tb_seminar.nip = tb_dosen.nip
where tb_dosen.nip = '$_GET[nip]'
";
$hasil=mysql_query($qry) or die ("".mysql_error());
$row = mysql_num_rows($hasil) or die ("".mysql_error());
$data=mysql_fetch_array($hasil) or die ("".mysql_error());
?><table class="table table-condensed">
<tr>
<th>No.</th>
<th>Tahun Lulus</th>
<th>Jenjang</th>
<th>Gelar</th>
<th>Nama Universitas</th>
<th>Bidang Ilmu</th>
<th>No. Ijazah</th>
</tr>
<?php
while ($k=mysql_fetch_array($hasil))
{
$a=$k['no_pendidikan'];
$b=$k['tahun_lulus'];
$c=$k['jenjang'];
$d=$k['gelar'];
$e=$k['nama_universitas'];
$f=$k['bidang_ilmu'];
$g=$k['no_ijasah'];
?>
<tr>
<td><?php echo $a ?></td>
<td><?php echo $b ?></td>
<td><?php echo $c ?></td>
<td><?php echo $d ?></td>
<td><?php echo $e ?></td>
<td><?php echo $f ?></td>
<td><?php echo $g ?></td>
</tr>
<?php } ?>
</table>
对不起,如果我用的是印尼语的话很抱歉我英语不好#
这里是完整版。http://pastebin.com/qgr4rHJC
对于图片#goo.gl/6mT0gi
您的sql语句似乎有问题。
对于每个联接,都可以创建一种相乘的结果集。因此,如果在基表中有3条记录,在联接表中有两条记录,那么结果中会有6行。联接条件通常通过删除与之不匹配的行来减少此计数
在每个数据库表中检查您的"nip"值,如果有多行包含相同的值,则存在加倍条目的来源。
@Joachim Schirrmacher
在数据库表中,tb_dosen是tb_table1,tb_pendidikan是tb_ttable2,tb_buku是tb_table 3,直到tb_table10,因为这10个表将与tb_table 1相关(类似于关系1对多)。
我正在查看数据库,每个表都有2条记录(目前),第一条是"nip1"(假设nip就像必须有"uique"fiture或primary的数字),第二条是"nip2"
现在在tb_table2有4条记录(现在只加1条),这4条记录有一个名为"nip"(关系的外键)的字段,tb_tbale2中的每个"nip"都有2条记录,另一个表也会变得像tb_table 2……所以当我点击这些"nip1"(主表)时,另一张表上的另一个nip(tb_table3到10)将只显示我点击的数据,但当我使用该查询时,记录会变成多个,为什么???