1

我已经完成了一个 CMS 学校系统,该系统是我从头开始创建的,用于在 php 中进行练习。我的问题是,例如我有会计 101、计算机科学 101,但是会计 101 必须有多次。例如:工单 1035、1036 都是会计 101,它们应该出现在同一个表中,但在我的代码中它显示了它们在不同的班级。这是我的代码。

if(isset($_GET['id']))
{
    $category = $_GET['id'];
    $sql = "SELECT * FROM classes WHERE category_id = " . $category;
    $query2 = mysql_query($sql) or die(mysql_error());


    while($row = mysql_fetch_object($query2))
    {
    ?>

    <center><h3><?php echo $row->class_name . '-' . $row->units; ?>  </h3></center>
    <table border ="0" wdith="100%">
    <tr>
    <td>
    <strong>Description: </strong>
    <?php echo $row->class_description; ?>
    </tr>
    </td>
    </table>
    <br/>
    <table border="1" width="44%">
<tr>
    <td width="60"><b>Ticket</b> </td>
    <td width="123"><b>Days</b></td>
    <td width="120"><b>Hours</b></td>
    <td width="64"><b>Room</b></td>
    <td><b>Instructor</b></td>
</tr>


    <tr>
    <td width="60"> <?php echo $row->ticket; ?> </td>
    <td width="123"><?php echo $row->days; ?></td>
    <td width="120"><?php echo $row->start_hours . $row->time_format . '-' . $row->end_hours . $row->time_format2 ;  ?> </td>
    <td width="64"> <?php echo $row->room_number; ?></td>
    <td><?php echo $row->instructor_name;  ?></td>
</tr>

    }//end while

}//end if

它在不同的表中显示具有不同票证的会计 101,但它应该全部在 1 个表中。谢谢。

4

1 回答 1

0

如果您试图在记录中获取记录,则需要一个双循环。例如:

while ($row1 = mysql_fetch_object($query1))
{
  echo $row1->ParentName;

  $query2 = 'select * from `mytable` where `myForeignKey` = ' . $row1->ParentId;

  while ($row2 = mysql_fetch_object($query2))
  {
    echo $row2->ChildName;
  }
}

您也可以进行左连接。让我知道你是否需要一个样本。

编辑:

左连接将像这样完成:

$sql = "select * from `classes` as a where category_id = '{$category}' left join `tickets` as b on a.id = b.class_id" 

参考。 http://www.w3schools.com/sql/sql_join_left.asp

于 2012-08-02T17:29:29.250 回答