Php 通过内部联接从不同表检索值
我无法使用内部联接从不同的表中检索值,输出始终无法检索任何内容。。此外,没有错误消息,我无法确定代码中出现了什么错误。。有人能帮忙吗?我将非常感激。这是我代码的一部分Php 通过内部联接从不同表检索值,php,inner-join,Php,Inner Join,我无法使用内部联接从不同的表中检索值,输出始终无法检索任何内容。。此外,没有错误消息,我无法确定代码中出现了什么错误。。有人能帮忙吗?我将非常感激。这是我代码的一部分 <?php $con=mysql_connect("localhost","root",""); mysql_select_db("student_records",$con); if(isset($_COOKIE['username'])) { if($_COOKIE['us
<?php
$con=mysql_connect("localhost","root","");
mysql_select_db("student_records",$con);
if(isset($_COOKIE['username']))
{
if($_COOKIE['username']!='admin')
{
$tbl6=mysql_query("SELECT A.LName, A.FName, A.MName, B.YearLevel
FROM student as A INNER JOIN stud_course as B ON A.StudNo=B.StudNo INNER JOIN course as C ON B.CourseCode=C.CourseCode INNER JOIN religion as D ON A.ReligionID=D.ReligionID
WHERE A.StudNo = '".mysql_real_escape_string($_COOKIE['username'])."' ");
while($row=mysql_fetch_array($tbl6))
{
echo "<td>".$row['LName']."</td><td>".$row['FName']."</td><td>".$row['MName']."</td><td>".$row['Course']."</td><td>".$row['YearLevel']."</td><td>".$row['EAdd']."</td><td>".$row['ReligionName']."</td></tr>";
}
}
}
?>
内部联接要求联接中包含的两个表中都存在数据。在您的情况下,有四个表,其中任何一个表都可能缺少相关数据:
SELECT A.LName, A.FName, A.MName, B.YearLevel, C.Course
FROM student as A
INNER JOIN stud_course as B ON
A.StudNo=B.StudNo
INNER JOIN course as C ON
B.CourseCode=C.CourseCode
INNER JOIN religion as D ON A.ReligionID=D.ReligionID
WHERE A.StudNo = '".mysql_real_escape_string($_COOKIE['username'])."' "
- 如果
表中没有student
等于用户名cookie的记录,则不会获得任何数据StudNo
- 如果学生在
表中没有任何记录,您将无法获得任何数据stud\u课程
- 如果
表中不存在course
中的stud\u course
,您将无法获得任何数据CourseCode
- 如果学生的
为空或宗教信仰不在ReligionID
表中,您将无法获得任何数据religion
内部连接
切换到左侧外部连接
),以调试并发现问题所在
注意,如果要尝试使用,必须确保将
课程
和Eadd
(不确定来自哪个表)字段添加到选择列表中。。它们不再得到维护。看到了吗?相反,学习,并使用or-将帮助您决定哪一个。如果你选择PDO,也不要输入大写字母。这是在线版的叫喊。@johncode-你有没有把评论保存在某个地方,剪切粘贴?@jared Farrish。对这里有一个指向Github Gist的链接。请尝试左连接
而不是内部连接
。我还应该注意,我个人不喜欢别名表。我觉得在整个SQL语句中使用表名会更清楚。但那只是我,非常感谢。我要试试你的建议。:)有一条错误消息告诉我们索引未定义,它指向这一行。。回显“$row['LName']”、$row['FName']”、$row['MName']”、$row['Course']”、$row['YearLevel']”、“$row['EAdd']”、.$row['ReligionName']”@scott.korin-a+1作为解决方案,我希望我能给你另一个+1作为关于别名的注释。不仅仅是你!别名对于许多操作(例如自联接、作为多个联接目标的表)非常重要,但我看到至少90%的查询不必要地使用它们。@kdot,您的选择列表中没有Course&EAdd。