Mysql — Дублированная строка только в выводе

Я устал выбирать только одно имя из таблицы, но проблема в том, что выходные данные дублируются 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>";
}
?>

Я хочу удалить этот дублированный результат и выбрать только для, например, Джон Доу, когда я попал в его профиль, только показать его посещаемость

0

Решение

Вам нужно JOIN обе таблицы используют внутреннее соединение. Предположительно, ваша таблица «пользователи» будет иметь первичный ключ, который будет присоединяться к внешнему ключу в таблице «посещаемость», что-то вроде «student_id».

WHERE users_id = students_id
1

Другие решения

если у ваших пользователей есть идентификатор, и перед вызовом SQL-запроса вы знаете идентификатор пользователя, для которого вы хотите посещаемость, вы можете изменить свой SQL-запрос на

SELECT * FROM Users U JOIN Attendance A on U.id = A.user_id where U.id = [insert userid]

Думаю, так оно и было, но это не в моей голове.

0

Вы получаете duplicatew, потому что вы делаете оператор select для двух таблиц (User и Attendance). Таблица User будет иметь первичный ключ (user_id), а таблица посещаемости будет иметь внешний ключ (user_id). Вам необходимо присоединиться к ним, используя следующие отношения внешнего ключа:

Select * from User u JOIN     Attendance a ON u.user_id = a.user_id;

Это даст вам строки в обеих таблицах, где пользователи одинаковы.

Надеюсь, это поможет.

0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector