【发布时间】:2018-06-14 12:24:15
【问题描述】:
我有两张桌子users 和test。 users 表包含有关学生的信息,test 表包含其测试详细信息。我想在登录后根据他的卷号向特定学生显示测试的所有详细信息。为此,我尝试在查询中使用以下foreach 函数和INNER JOIN。
<?php
foreach($conn->query('SELECT test.date, test.sub,test.topic,test.marks,test.rank FROM test JOIN users ON test.rollno=users.rollno order by date desc')as $row){ ?>
<button class="accordion"><b>Test on <?php echo date('d-m-Y', strtotime( $row['date'] )); ?></b></button>
<div class="panel">
<p>
<table border="1">
<?php
echo "<tr><td>Date: " . date('d-m-Y', strtotime( $row['date'] )) . "</td></tr>";
echo "<tr><td>Subject: " . $row['sub'] . "</td></tr>";
echo "<tr><td>Topic: " . $row['topic'] . "</td></tr>";
echo "<tr><td>Marks: " . $row['marks'] . "</td></tr>";
echo "<tr><td>Rank: " . $row['rank'] . "</td></tr>"; ?>
</table>
</p>
</div>
<?php }?>
无论卷号如何,这都会返回所有测试记录。我在两个表中都有rollno 列。我希望查询显示与当前卷号匹配的记录。请帮忙。
【问题讨论】:
-
WHERE user.rollno = ?? -
首先,打印您的查询并在数据库中运行
-
@KrunalPandya 它使用此查询
SELECT test.date, test.sub,test.topic,test.marks,test.rank FROM test JOIN users USING(rollno) WHERE rollno=12 order by date desc工作,但它是session如果我输入rollno=$userRow['rollno']那么它说语法错误 -
你可以在页面上打印卷号,然后一旦你开始工作,你就可以在 where 子句中使用该变量
-
@variable 我试过了。
rollno打印在页面上,但错误是Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42S22]: Column not found: 1054 Unknown column '$temp' in 'where clause'' in C:\wamp64\www\rathi-classes\home.php on line 367
标签: php mysql sql join foreach