0

SQL SELECTステートメントに問題があり、GoogleとYouTubeで検索しましたが、何も見つかりませんでした。

これが私のPHPコードです:

public function loadMark($data){
    dbConn(); 

    $query = "SELECT
        subject.subName
        , mark.mark
    FROM
        itcollage.marktype
        , itcollage.student
    INNER JOIN itcollage.parent 
        ON (student.pId = parent.pId)
    INNER JOIN itcollage.mark 
        ON (mark.stId = student.sId)
    INNER JOIN itcollage.subject 
        ON (mark.subId = subject.subId)
    WHERE 
        parent.pUsername='$data' 
    AND 
        mark.subId = subject.subId LIMIT 2";

    return $result=  mysql_query($query);

}

生徒IDを取得した保護者の正しいマークを読み込むためにこれを実行したくはありませんが、すべての科目でマークを繰り返し続けます。

次のようなデータ:

Subject      Mark
--------  | ------
Java 101  |   A
Java 101  |   D
Math 101  |   A
Math 101  |   D
  • Java 101 = A、数学= D

だから何が悪いの!!!

そして、これがクラスmarks.class.phpを呼び出すための私のコードです

    include '../classes/mark.class.php';

    $mark = new mark();
    $result = $mark->loadMark($user);
    $num = mysql_num_rows($result);

     if ($num == 0) {
?>
         <h2>No Marks for your Kid</h2>
<?php
     } else {
?>
         <h2>Marks</h2>
         <table>
             <thead>
                 <tr>
                     <th>Subject</th>
                     <th>Mark</th> 
                  </tr>
              </thead>
              <tbody>
<?php
                  while ($row = mysql_fetch_object($result)) {
                      $marks = $row->mark;
                      $subject = $row->subName;
?>

                      <tr class="light">
                          <td align="center"><?php echo $subject; ?></td>
                          <td align="center"><?php echo $marks; ?></td>
                      </tr>

 <?php
                   }
 ?>
               </tbody>   
           </table>

誰かが私に何が悪いのか見せてもらえますか?

4

1 に答える 1

1

これは問題のようです。このテーブルの結合条件は指定しません。

FROM
    itcollage.marktype
    , itcollage.student

への変更:

FROM
    itcollage.marktype 
    INNER JOIN itcollage.student *(add join condition here)*
于 2013-03-24T23:17:21.560 に答える