我有一张名为'kelas'的桌子。
|id_kelas|nama_kelas|
我有桌子Sesi
|id_sesi|nama_sesi|
我还有另一张桌子是sesikelas
|id_kelas|id_sesi|
kelas与sesi之间存在多对多的关系,我想用PHP编程就是在2列上并排显示/查看sesike的sesi值。
例如
|id_kelas|nama_kelas|session1|session2|
|01 |nama_kelas|id_sesi |id_sesi |
sesion1或session2来自sesikelas表上的值。 问题是,我想组合id_sesi,它等于某些id_kelas。不是一个接一个,但如果在桌子上有两个id_kelas记录,sesikelas会并排显示。
任何人都可以帮助我使用php,如何在图片中查看它们?
我的PHP,但无法正常工作。 我使用的是mysql数据库,这是我的php代码。
$cls=mysql_query("select k.id_kelas,nama_kelas, sk.id_sesi,sesi from kelas k left join sesikelas sk on k.id_kelas=sk.id_kelas left join sesi on sk.id_sesi=sesi.id_sesi order by k.id_kelas");
while($fr = mysql_fetch_array($cls))
{
if ($temp2!=$fr['id_kelas'])
{
echo "<tr><td class='idclass'>".$fr['id_kelas']."</td>";
echo "<td class='namecell'>".$fr['nama_kelas']."</td>";
if(isset($fr['sesi']))
{
$x=mb_substr($fr['sesi'],0,1);
echo "<td class='ses1cell'>".$hari[$x]." (".mb_substr($fr['sesi'],1,2).".".mb_substr($fr['sesi'],3,2)."-".mb_substr($fr['sesi'],5,2).".".mb_substr($fr['sesi'],7,2).")</td>";
} else {
echo "<td class='ses1cell'>Not set</td>";
}
$temp='skip';
} else {
$temp='session2';
}
if (($temp=='session2'))
{
if(isset($fr['sesi']))
{
$x=mb_substr($fr['sesi'],0,1);
echo "<td class='ses2cell'>".$hari[$x]." (".mb_substr($fr['sesi'],1,2).".".mb_substr($fr['sesi'],3,2)."-".mb_substr($fr['sesi'],5,2).".".mb_substr($fr['sesi'],7,2).")</td>";
}else{echo "<td class='ses2cell'>Not set</td>";}
echo "<td align='right'><a class='edit' href='#' onClick='Edit($(this))'>Edit</a> |
<a class='delete' href='#' onClick='DeleteData($(this))'>Delete</a></td>";
echo "</tr>";
$temp='skip';
}
if (($temp=='skip') and ($temp2==$fr['id_kelas']))
{ if ($temp2==$fr['id_kelas']){
echo "<td class='ses2cell'>Not ff set</td>";}
echo "<td align='right'><a class='edit' href='#' onClick='Edit($(this))'>Edit</a> |
<a class='delete' href='#' onClick='DeleteData($(this))'>Delete</a></td>";
echo "</tr>";
}
$temp2=$fr['id_kelas'];
}
答案 0 :(得分:0)
你的问题不是很清楚,但我怀疑这就是你想要的:
SELECT k.id_kelas, k.nama_kelas, s.session1, s.session2
FROM kelas k
JOIN sesikelas sk ON k.id_kelas = sk.id_kelas
JOIN sesi s ON s.id_sesi = sk.id_sesi
这是使用中间关系表连接两个表的常规方法。
答案 1 :(得分:0)
因为您没有提到您正在使用的数据库,mysql或其他数据库。我假设你使用的是mysql。
<?php
$con=mysqli_connect("host","user","passw”,"db”) ;
$query=“select k.id_kelas, k.nama_kelas, session1,session2
from kelas k inner join sesikelas sk
on sk.id_kelas=k.id_kelas “;
$result = mysqli_query($con,$query);
echo "<table>
<tr>
<th>id_kelas</th>
<th>nama_kelas</th>
<th>session1</th>
<th>session2</th>
</tr>";
while($row = mysqli_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['id_kelas'] . "</td>";
echo "<td>" . $row['mama_kelas'] . "</td>”;
echo "<td>" . $row['session1'] . "</td>";
echo "<td>" . $row['session2'] . "</td>";
echo "</tr>";
}
echo "</table>";
mysqli_close($con);
&GT;