首页 > 解决方案 > 从其他表调用ID显示当前表信息

问题描述

我想在条件为时显示讲座表中的讲座信息;与老师和课程相同的ID。所以,我想获得课程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显示讲座表。

标签: phpsql

解决方案


出于某种原因,您在$getid. 因此,您的查询将如下所示

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

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

$getid设置在第一行,

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

, 到 $_GET['id'] 的内容。也就是说,它被设置为id请求的查询字符串中的值。

?查询字符串是 URL中末尾an 之后的部分。假设您的脚本被调用myscript.php并且位于 web serer 的根目录中www.myserver.com,则浏览器地址字段中的 URL 必须如下所示

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

在查询的第二次比较中获得4的值$_GET['id'],然后在$getidfinally 中。(注意id=4最后。在最后的某个地方,在?this 之后必须写在某个地方。但不一定需要是唯一的。例如...?someotherarg=hello&id=4&yetsomeotherarg=world也可以。)

(注意:我认为有趣的第一行工作正常,因为你没有报告 PHP 语法错误。虽然它看起来有点不正统。你可以考虑用更“友好”和“标准”替换它

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

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


推荐阅读