Я устал выбирать только одно имя из таблицы, но проблема в том, что выходные данные дублируются 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>";
}
?>
Я хочу удалить этот дублированный результат и выбрать только для, например, Джон Доу, когда я попал в его профиль, только показать его посещаемость
Вам нужно JOIN
обе таблицы используют внутреннее соединение. Предположительно, ваша таблица «пользователи» будет иметь первичный ключ, который будет присоединяться к внешнему ключу в таблице «посещаемость», что-то вроде «student_id».
WHERE users_id = students_id
если у ваших пользователей есть идентификатор, и перед вызовом SQL-запроса вы знаете идентификатор пользователя, для которого вы хотите посещаемость, вы можете изменить свой SQL-запрос на
SELECT * FROM Users U JOIN Attendance A on U.id = A.user_id where U.id = [insert userid]
Думаю, так оно и было, но это не в моей голове.
Вы получаете duplicatew, потому что вы делаете оператор select для двух таблиц (User и Attendance). Таблица User будет иметь первичный ключ (user_id), а таблица посещаемости будет иметь внешний ключ (user_id). Вам необходимо присоединиться к ним, используя следующие отношения внешнего ключа:
Select * from User u JOIN Attendance a ON u.user_id = a.user_id;
Это даст вам строки в обеих таблицах, где пользователи одинаковы.
Надеюсь, это поможет.