我希望在有条件的情况下从讲座表中显示讲座信息;与老师和课程相同的身份。因此,我想获得课程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显示讲座表。
答案 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请求也没有做任何有用的事情。据我所知,它的结果从未在其他任何地方使用过。所以我建议你删除它。阅读代码时,这只是不必要的混淆。)