选择组合框时,我一直试图获得一些结果 这是我的疑问:
$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取自学生表而不是取自studentresult表。有人可以帮我这个。
编辑1:
id存在于两个表中
编辑2:
学生成绩:
ID | StudentID | SubjectID |商标|排名|条款|年
学生:
ID | Roll Num |类|名称|姓
提前感谢你
Bhaamb
答案 0 :(得分:0)
$strSQL = "SELECT *,studentresult.id as stid FROM studentresult,student where studentresult.studentid=student.id and student.class='$classes' and term='$term'and studentresult.studentid=student.id and year='$year' ";
然后
<div align="center"><?=$objResult["stid"];?></div>
答案 1 :(得分:0)
您最好从两个表中指定列名而不是(*)列名称别名,以避免列名冲突(如果两者相同)并尝试根据需要使用Join(内部或左侧)。
例如,有些事情是这样的:
SELECT S.id AS student_id,SR.id as StudentResultId,S.class,s.year 来自studentresult AS SR INNER JOIN学生AS S. 在哪里SR.studentid = S.id和S.class =&#39; $ classes&#39;和s.term =&#39; $ term&#39;和SR.studentid = s.id和s.year =&#39; $ year&#39;
答案 2 :(得分:0)
首先,为什么在where子句中使用两次?
studentresult.studentid=student.id
请在连接具有相同列名的表时明确定义所有需要的列,例如
SELECT studentresult.id as sr_id, student.id as s_id ... FROM ...
并在您的PHP代码中更改它:
<?=$objResult["sr_id"];?>