Я циклом while вывожу из бд пользователей вывожу их имена фамилии и фотографию обворачиваю их ссылками. Как теперь сделать так чтобы при клике на нужного пользователя который я вывел из бд я попадал на его страницу ведь цикл только выводит информацию как их id получать мне при клике если переменная с id просто в цикле запихнуть в переменную сессии то в сессии будет одна самая последняя переменная с id
Роутер во фронт-контроллере, спец. роут для адресов вроде /users/1 или на крайняк общий роут для /users и /users/* с ветвлением в контроллере. Соответствующий контроллер и т.п. Или взять готовый код. Можно даже взять фронт, который умеет сам разруливать такие вещи, например G-Drive. Ему и контроллер не всегда нужен: https://gency.ru/comment/125 (код для списка можно повесить на отдельную ветку, например /userlist). Также можно использовать контроллер с кодом для списка в таком виде: PHP: <?php if (empty($r1)) { $r0['module'] .= 'list'; // код для списка, причем устанавливать соединение с БД не нужно: используй переменную $link } Шаблон для отдельного юзера нужно будет разместить в users.php, а для списка – в userslist.php.
Из БД можно запросить не только всех пользователей, но и конкретного пользователя: Код (Text): select * from users where id=1 Каким-либо способом берёшь переданный ID, например, из get-парметра, из маршрута и т.п., и запрашиваешь нового пользователя. Если ты только учишься, сразу организовать единую точку входа и роутинг будет сложновато (да и потом, всё равно это будет делать какая-нибудь либа/фреймворк, мало кто это пишет самостоятельно). Для начала можно сделать отдельный php-файл PHP: // user.php $db = mysqli_connect(/* тут твои параметры подключения */); // Для предотвращения SQL-инъекций (вид атаки, когда хакер может снести пол твоей базы, или узнать, что ему не полагается) // нужно использовать подготовленные операторы $smt = mysqli_prepare($db, "select * from users where id = ?"); // ? - куда потом подтсавлять данные mysqli_stmt_bind_param($smt, "i", $_GET["id"]); // Берём из get-параметра mysqli_stmt_execute($smt); $result = mysqli_stmt_get_result($stm); $user = mysqli_fetch_array($result, MYSQLI_ASSOC); if (!$user) { http_response_code(404); die(); } // теперь делаем что-то с юзьверем Ну так ты пишешь, пока учишься. Если уже объекты понимаешь, можно PDO взять, с ней поприятнее работать. Потом, скорее всего, перейдёшь к какому-нибудь фреймворку