1

PHP での練習用にゼロから作成した CMS スクール システムを使用しました。私の質問は、たとえば、会計 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

異なるテーブルに異なるチケットを持つ Accounting 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 に答える