如何并排列查看多对多表


How to view many to many tables on side by side column

我有一个名为"kelas"的表。

|id_kelas|nama_kelas|

我有Sesi 桌子

|id_sesi|nama_sesi|

我还有另一张桌子,是sesikelas

|id_kelas|id_sesi|

kelas和sesi之间存在多对多的关系,我希望PHP编程能够在2列上并排显示/查看sesi在sesikelas上的值。

示例

|id_kelas|nama_kelas|session1|session2|
|01      |nama_kelas|id_sesi |id_sesi |

sesion1或session2来自表sesikelas上的值。问题是,我想将等于某些id_kela的id_sesi组合起来。不是一行一个接一个,但如果表上有两个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'];
  }

你的问题不是很清楚,但我怀疑这就是你想要的:

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

这是使用中间关系表连接两个表的正常方式。

因为您没有提到您正在使用哪个数据库,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);

?>