来自其他表的呼叫ID以显示当前表信息

时间:2018-04-28 20:40:16

标签: php sql

我希望在有条件的情况下从讲座表中显示讲座信息;与老师和课程相同的身份。因此,我想获得课程ID,但它不起作用。系统是教师选择特定的课程来看它的讲座。有什么建议吗?

    <?PHP if($_GET)$getid= $_GET['id'];$q=mysqli_query($con,"select id from courses id='$getid' ");$n=  mysqli_fetch_assoc($q);$id=$_SESSION['user'];





             $teachid=$_SESSION['user']['id'];
            $query = "SELECT * FROM lectures WHERE teacher_id=$teachid AND course_id=$getid";

    $result = mysqli_query($con, $query);

    while($row = mysqli_fetch_assoc($result))
    {
        ?>
                <tr>
                  <td><?php echo $row['id']; ?></td>
                    <td><?php echo $row['subject']; ?></td>
                    <td><?php echo $row['post']; ?></td>
                    <td><?php echo $row['photo']; ?></td>
                    <td><?php echo $row['teacher_id']; ?></td>
                    <td><?php echo $row['social_url']; ?></td>
                     <td><?php echo $row['course_id']; ?></td>

                    <td></td>
                    <td><button type="submit" class="button" name="doEdit" value="<?PHP echo $row['id'];?>">Edit</a>
                   <button type="submit" class="button" name="doDelete" value="<?PHP echo $row['id'];?>">Delete</a></td>


              </tr>

<?PHP }
    unset($row);
    ?>

以下是讲座表:

  `lectures`; CREATE TABLE `lectures`
 ( `id` int(11) NOT NULL,
 `subject` varchar(255) NOT NULL, `post`
 text NOT NULL, 
`photo` varchar(255) NOT NULL,
 `teacher_id` int(11) NOT NULL,
 `social_url` varchar(255) NOT NULL, 
`created` datetime NOT NULL,
 `modified` datetime NOT NULL,
 `course_id` int(11) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

和课程表:

`courses`; CREATE TABLE `courses`
 ( `id` int(11) NOT NULL,
 `name` varchar(255) NOT NULL,
 `photo` varchar(255) NOT NULL,
 `course_cat_id` int(11) NOT NULL DEFAULT '1',
 `user_id` int(11) NOT NULL,
 `institute_id` int(11) NOT NULL,
 `description` text NOT NULL,
 `teacher_id` int(11) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

我最想要的是根据课程ID和注册教师的ID显示讲座表。

1 个答案:

答案 0 :(得分:0)

由于某种原因,$getid中的值为空。因此,您的查询看起来就像是。

SELECT * FROM lectures WHERE teacher_id=7 AND course_id=;

(注意,第二个=没有价值权。) 这是一个无效的查询,它不会从数据库中检索任何内容,只会触发错误。

$getid在第一行设置,

if($_GET)$getid= $_GET['id'];...

,$ _GET [&#39; id&#39;]的内容。也就是说,它在请求的查询字符串中设置为id的值。

查询字符串是URL末尾?后的部分。假设您的脚本名为myscript.php且位于www.myserver.com的网络搜索者的根目录中,则浏览器地址字段中的网址必须如下所示

http://www.myserver.com/myscript.php?id=4

$_GET['id']中获得 4 的值,然后在$getid中获得最终在查询的第二次比较中的值。 (最后请注意id=4。在最后的某个地方,?之后必须在某处写入。但它不一定是唯一的。例如...?someotherarg=hello&id=4&yetsomeotherarg=world也没关系。)

(注意:我认为有趣的第一行正常工作,因为你没有报告PHP语法错误。虽然它对我来说看起来有点不正统。你可能会考虑用更多的东西替换它&#34;友好&#34;和&#34;标准&#34;

if ($_GET)
{
    $getid = $_GET['id'];
}

如果我的假设是错误的并且它没有正常工作。如前所述,该行中的SQL请求也没有做任何有用的事情。据我所知,它的结果从未在其他任何地方使用过。所以我建议你删除它。阅读代码时,这只是不必要的混淆。)