Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-从两个表中选择时得到错误的结果_Php_Mysql - Fatal编程技术网

PHP-从两个表中选择时得到错误的结果

PHP-从两个表中选择时得到错误的结果,php,mysql,Php,Mysql,我一直在尝试在选择组合框时获得一些结果。 我的问题是: $strSQL = "SELECT * FROM studentresult,student where studentresult.studentid=student.id and student.class='$classes' and term='$term'and studentresult.studentid=student.id and year='$year' "; 此查询将返回所有studentresult.id=2,其中

我一直在尝试在选择组合框时获得一些结果。
我的问题是:

$strSQL = "SELECT * FROM studentresult,student where studentresult.studentid=student.id and student.class='$classes' and term='$term'and studentresult.studentid=student.id and year='$year' ";
此查询将返回所有studentresult.id=2,其中studentresult.id为主

这是php代码:

 <td><div align="center"><?=$objResult["id"];?></div></td>
    <td><div align="center"><?=$objResult["studentid"];?></div></td>
    <td><?=$objResult["subjectid"];?></td>
    <td><?=$objResult["marks"];?></td>
    <td><div align="center"><?=$objResult["term"];?></div></td>
    <td align="right"><?=$objResult["year"];?></td>
    <td align="right"><?=$objResult["rank"];?></td>

id是从student表中获取的,而不是从studentresult表中获取的。有人能帮我吗。

编辑1:
id出现在两个表中

编辑2:
学生成绩:
id |学生id |主体|分数|等级|学期|年份

学生:
id | Roll Num | class | Name |姓氏


提前感谢您
巴姆

然后


如果两个表的列名相同,最好指定列名而不是(*),以避免列名冲突,并根据需要尝试使用Join(内部或左侧)

例如,像这样的事情:

选择S.id作为学生id,SR.id作为学生结果id,S.class,S.year 来自studentresult作为SR 内部连接学生为S
其中SR.studentid=S.id和S.class='$classes'和S.term='$term'和SR.studentid=S.id和S.year='$year'

首先,为什么在WHERE子句中使用这两次

studentresult.studentid=student.id

请在连接具有相同列名的表时显式定义所有需要的列,例如

选择studentresult.id作为sr\u id,选择student.id作为s\u id。。。来自…

并在php代码中对其进行更改:

 <td><div align="center"><?=$objResult["id"];?></div></td>
    <td><div align="center"><?=$objResult["studentid"];?></div></td>
    <td><?=$objResult["subjectid"];?></td>
    <td><?=$objResult["marks"];?></td>
    <td><div align="center"><?=$objResult["term"];?></div></td>
    <td align="right"><?=$objResult["year"];?></td>
    <td align="right"><?=$objResult["rank"];?></td>

两个表中都有id吗?是的,两个表中都有id,先生…然后使用“选择studentresult.id作为stid”,然后使用“可以显示您的表结构。请检查您的where条件,您已经比较了两次相同的条件,我认为存在问题?”?如果你仍然面临同样的问题,请让我改变。
<div align="center"><?=$objResult["stid"];?></div>