0

我真的不确定嵌套查询是否是我需要的。

我正在开发一个网站,教师可以在该网站上创建测验来帮助学生学习。我有一个简单的查询,它根据与 tbl_quiz_titles 中的 member_id 匹配的成员会话 ID 来回显登录教师已经创建的测验。

在每个测验名称下方是一个按钮(以表格形式),允许教师转到另一个页面为测验添加徽章,如果学生获得一定的百分比,则可以收到徽章,由教师决定。

这是我当前的代码:

session_start();
    include "mysqlpdo_connect.php";
        $my_quiz_query = $pdo->query("SELECT * FROM tbl_quiz_titles WHERE member_id = '{$_SESSION['member_id']}'") ;

$result_my_quiz_query = $my_quiz_query->fetchAll(PDO::FETCH_ASSOC);

        foreach($result_my_quiz_query as $row_my_quiz_query) {


echo $row_my_quiz_query['quiz_id'] . ": " . $row_my_quiz_query['quiz_name'] . "<br/>

<form action=\"ebox_badge_new.php\" method=\"get\" style=\"float: left\">
    <input type=\"hidden\" name=\"ref\" value=\"" . $row_my_quiz_query['quiz_id'] . "\" />              
    <button><img src=\"images/icons/Add_Badge_Btn.gif\" alt=\"Add badge to quiz\" width=\"100\" height=\"25\" border=\"0\" /></button>
</form>
<br/>
<br/>

 ";

        }

问题是该查询在每个测验名称下方显示表单按钮。一旦老师为他们的测验添加了徽章,我不再希望他们看到为该特定测验添加徽章的表格。

需要注意的是,徽章存储在 tbl_badges 中,测验 id 存储在“badge_quiz_id”列中。

因此,我的问题是:如何更改代码以使表单按钮仅出现在那些还没有与之关联的徽章的测验中?

即:$row_my_quiz_query['quiz_name']

应该为每个测验回显,但表格应该只显示在 $row_my_quiz_query['quiz_id'] 在 tbl_quiz_badges.badge_quiz_id 中没有看到的地方?

任何提示将非常感谢。

干杯,戴夫

4

1 回答 1

0

感谢您为我指明正确的方向“您的常识”。

这就是我想出的,这似乎可以解决问题:

   <?php
  session_start();
    include "mysqlpdo_connect.php";
        $my_quiz_query = $pdo->query("SELECT *
FROM    `tbl_quiz_titles`
LEFT JOIN 
   `tbl_badges` 
ON     `member_id` = '{$_SESSION['member_id']}'
    AND `quiz_id` = `badge_quiz_id`") ;





$result_my_quiz_query = $my_quiz_query->fetchAll(PDO::FETCH_ASSOC);

        foreach($result_my_quiz_query as $row_my_quiz_query) {


echo $row_my_quiz_query['quiz_id'] . ": " . $row_my_quiz_query['quiz_name'] . "<br/>";

if ($row_my_quiz_query['badge_quiz_id'] == "")
{


echo"   <form action=\"ebox_badge_new.php\" method=\"get\" style=\"float: left\">
    <input type=\"hidden\" name=\"ref\" value=\"" . $row_my_quiz_query['quiz_id'] . "\" />              
    <button><img src=\"images/icons/Add_Badge_Btn.gif\" alt=\"Add badge to quiz\" width=\"100\" height=\"25\" border=\"0\" /></button>
</form>
<br/>
<br/>

 ";
  }
        }
        ?>
于 2013-09-02T01:41:32.617 回答