我厌倦了从表中只选择一个名称,但问题是输出重复3或4次,结果相同(例如,在phpmyadmin中我只有5行,当我调用它时输出重复5行是20行
这是我用过的代码
<?php
$sql = "SELECT * FROM attendance, users ";
$result = $db->prepare($sql);
$result->execute();
while ($row = $result->fetch()) {
$status = $row['status'];
$notes = $row['notes'];
$datetime= $adminfunctions->displayDate($row['timestamp']);
echo "<tr><td><a href='" . $configs->getConfig('WEB_ROOT') . "admin/adminuseredit.php?usertoedit=" . $row['username'] . "'>" . $row['student_name'] . "</a></td>";
echo "<td><div class='shorten'><a href='#'>" . $status . "</a></div></td><td>" . $notes . "</td><td>" . $datetime . "</td>";
echo "<td class='text-center'><div class='btn-group btn-group-xs'><a href='".$configs->getConfig('WEB_ROOT')."admin/adminuseredit.php?usertoedit=".$row['username']."' title='Edit' class='open_modal btn btn-default'><i class='fa fa-pencil'></i> View</a>";
echo"</tr>";
}
?>
我想删除这个重复的结果,只选择John Doe,当我到他的个人资料时只显示他的出席情况
答案 0 :(得分:1)
您需要使用内部联接JOIN
两个表。大概是你的用户&#34; table将有一个主键,它将加入&#34;出勤&#34;表,像&#34; student_id&#34;。
WHERE users_id = students_id
答案 1 :(得分:0)
如果您的用户有ID,并且在调用SQL查询之前您知道要为其出席的用户的ID,则可以将SQL查询更改为
SELECT * FROM Users U JOIN Attendance A on U.id = A.user_id where U.id = [insert userid]
想想就是这样,但这只是我的头脑。
答案 2 :(得分:0)
您正在获取duplicatew,因为您正在为两个表(用户和出勤)执行select语句。 User表将具有主键(user_id),并且出勤表将具有外键(user_id)。您需要使用此外键关系加入它们,如下所示:
Select * from User u JOIN Attendance a ON u.user_id = a.user_id;
这将为您提供两个表中用户相同的行。
我希望这会有所帮助。