0 / 4 / 1
Регистрация: 20.05.2015
Сообщений: 450

Как сделать, чтобы при нажатии по нику или логину пользователя, попасть на его страницу php mysql

30.11.2016, 12:05. Показов 3675. Ответов 35
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как на странице пользователи сайта организовать такую вещь:
Это уже сделано -> Выводим список зарегистрированных пользователей:
Это еще не сделано -> Само условие, если мы жмем по нику пользователя, что бы перекидывало на страницу данного пользователя?
Одним словом нажать на ник или логин, и вас перекидывает на его страницу, с его данными.

Код вывод страницы пользователей такой:
PHP
1
2
3
4
5
6
7
8
 $sql = 'SELECT * FROM `users` WHERE `id`!= "'. $_SESSION['id'] .'"';
$stmt = $pdo->prepare($sql);
if($stmt->execute()){
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
if ($rows){
foreach($rows as $val){
echo '('.$val['id'] .') '.$val['login'] .'<hr/>';
}}}
Кто может дать ответ, вроде легко но не пойму как это сделать.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.11.2016, 12:05
Ответы с готовыми решениями:

Как сделать так чтобы при нажатии на поле из выпадающего списка, в input записывалось его значение на php?
Доброго времени суток! У меня есть БД Kurs , в ней таблица Pryce , в которой поля предмет (sabject) и цена (price). Я сделала...

Как сделать, чтобы при нажатии кнопки программа переходила к следующему окну или открывала его отдельно?
Прошу не судить строго, изучаю пайтон только 2 день. Сразу извиняюсь за такой огромный текст( Пишу приложение, вкратце, его функционал...

Как сделать чтобы на определённую страницу смог зайти только администратор php mysql
Как сделать чтобы на определённую страницу смог зайти только администратор php mysql.

35
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
30.11.2016, 12:26
Цитата Сообщение от _NE_KAKIX_IMEN_ Посмотреть сообщение
Одним словом нажать на ник или логин, и вас перекидывает на его страницу, с его данными.
Сделать ник или логин ссылкой на страницу
0
930 / 846 / 190
Регистрация: 28.11.2013
Сообщений: 3,621
30.11.2016, 12:37
И, естественно, сделать сами страницы пользователей, если их нет.
0
Web Programmer
 Аватар для JimUSA
325 / 286 / 121
Регистрация: 28.09.2011
Сообщений: 1,570
30.11.2016, 13:37
_NE_KAKIX_IMEN_,
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php
 
# Настройки для подключения к mysql
define('DB_HOST', 'localhost');
define('DB_USER', 'root');
define('DB_PASS', '');
define('DB_NAME', 'dbname');
 
$db = mysqli_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);
mysqli_set_charset($db, 'utf-8');
 
$id = isset($_GET['id']) ? (int)$_GET['id'] : 0;
if($id > 0) {
    /*
        Если ссылка «/?id=ид_пользователя существует,
        и не пуста, делаем запрос на получение данных,
        по этому id.
    */
    $sql = "SELECT * FROM `users` WHERE `id`='{$id}' LIMIT 1";
    $user = mysqli_fetch_assoc(mysqli_query($db, $sql));
    if(!is_null($user)) {
        echo '<h1>Это страница пользователя, ' . $user['username'] . '</h1>';
    }else echo '<div style="color: rgba(255,0,0,1);">Пользователя с таким никнеймом не найдено!</div>';
}else{
    /*
        Выводим всех пользователей, и вешаем ссылку «/?id=ид_пользователя».
    */
    $sql = "SELECT * FROM `users`";
    $query = mysqli_query($db, $sql);
    while($user = mysqli_fetch_assoc($query)) {
        echo '<p><a href="/?id=' . $user['id'] . '">' . $user['username'] . '</a></p>';
    }
}
0
0 / 4 / 1
Регистрация: 20.05.2015
Сообщений: 450
30.11.2016, 13:39  [ТС]
miketomlin, Виталюска, Вот как раз страницы пользователей есть. А вот ссылку по по нажатию ника у меня не получается сделать. Вот я и написал что бы мне помогли.

Добавлено через 1 минуту
JimUSA, Спасибо, вечерком зайду и опробую код. Только я это все делаю через pdo mysql подключения.
0
Web Programmer
 Аватар для JimUSA
325 / 286 / 121
Регистрация: 28.09.2011
Сообщений: 1,570
30.11.2016, 14:26
_NE_KAKIX_IMEN_,
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
 
# Настройки для подключения к mysql
define('DB_HOST', 'localhost');
define('DB_USER', 'root');
define('DB_PASS', '');
define('DB_NAME', 'cyber');
 
$db = new PDO('mysql:host='.DB_HOST.';dbname='.DB_NAME.';charset=utf8', DB_USER, DB_PASS);
 
$id = isset($_GET['id']) ? (int)$_GET['id'] : 0;
if($id > 0) {
    /*
        Если ссылка «/?id=ид_пользователя существует,
        и не пуста, делаем запрос на получение данных,
        по этому id.
    */
    $sql = "SELECT * FROM `users` WHERE `id`='{$id}' LIMIT 1";
    $user = $db->query($sql)->fetch(PDO::FETCH_ASSOC);
    if(!empty($user['username'])) {
        echo '<h1>Это страница пользователя, ' . $user['username'] . '</h1>';
    }else echo '<div style="color: rgba(255,0,0,1);">Пользователя с таким никнеймом не найдено!</div>';
}else{
    /*
        Выводим всех пользователей, и вешаем ссылку «/?id=ид_пользователя».
    */
    $sql = "SELECT * FROM `users`";
    $user = $db->query($sql)->fetchAll();
    for($i = 0; $i < count($user); $i++) {
        echo '<p><a href="/?id=' . $user[$i]['id'] . '">' . $user[$i]['username'] . '</a></p>';
    }
}
0
0 / 4 / 1
Регистрация: 20.05.2015
Сообщений: 450
30.11.2016, 16:53  [ТС]
JimUSA, Вот теперь отличный ответ, сейчас разбирать буду что к чему) Спасибо.
0
930 / 846 / 190
Регистрация: 28.11.2013
Сообщений: 3,621
30.11.2016, 17:23
Зачем вам это? Вы же написали, что страницы у вас есть. Формируйте список со ссылками нужного формата и все.
0
0 / 4 / 1
Регистрация: 20.05.2015
Сообщений: 450
30.11.2016, 18:34  [ТС]
miketomlin, я имею введу страницы есть типа такого: зарегистрировался пользователь заходит в кабинет и заполняет данные, заполнил данные сохранил. Вот и появилась его страница. Но я не могу выдать ссылку на его кабинет.

Добавлено через 5 минут
JimUSA, Так теперь по порядку переделал не много код стал такой:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php 
  $iduser = !empty($_GET['idPolz']) ? $_GET['idPolz'] : 0;     //чем отличается этот код
//$iduser = isset($_GET['idPolz']) ? (int)$_GET['idPolz'] : 0; //от этого?
    if($iduser > 0) {
    
        $sql = "
        SELECT *
        FROM `users`
        WHERE `id`= :id
        LIMIT 1";
 
        $stmt = $pdo->prepare($sql);
        $stmt -> bindParam(':id',$iduser,PDO::PARAM_INT);
        $stmt->execute();
        $user = $stmt->fetch(PDO::FETCH_ASSOC);
 
        if(!empty($user['login'])) {
            echo '<h1>Это страница пользователя, ' . $user['login'] . '</h1>';
        }else echo '<div style="color: rgba(255,0,0,1);">Пользователя с таким никнеймом не найдено!</div>';
      }else{
 
        $sql = '
        SELECT *
        FROM `users`
        WHERE `id`!= "'. $_SESSION['id'] .'"';
 
        $stmt = $pdo->prepare($sql);
        $stmt->execute();
        $res = $stmt->fetchAll(PDO::FETCH_ASSOC);
        
        foreach ($res as $user){
            echo '<p><a href="?mode=polsov&idPolz=' . $user['id'] . '">' . $user['login'] . '</a></p>';
        }
      }
      ?>
Теперь когда я жму на ник-логин то мне пишет: это страница пользователя виктора
Но больше не выводит не каких данных. А мне надо выводить его данные которые он там заполнил.
Еще надо посидеть, и подумать мне. Может кто еще напишет ответ.
Да и посмотрит правильно организовал данный код или где то есть погрешность.
0
Web Programmer
 Аватар для JimUSA
325 / 286 / 121
Регистрация: 28.09.2011
Сообщений: 1,570
30.11.2016, 18:39
_NE_KAKIX_IMEN_, Ваш пример empty будет работать также.
только лучше сделать (int)$_GET['idPolz']
0
0 / 4 / 1
Регистрация: 20.05.2015
Сообщений: 450
30.11.2016, 19:59  [ТС]
JimUSA, Ок сделаю, я по не многу разбираюсь, я не профи в этом но уже не много понимаю. А организован код лучше или так же?
Да и информация о пользователе хранится у меня в другой таблице. Не пойму как вывести эту инфу)))
Сейчас посижу и еще подумаю.

Добавлено через 2 минуты
JimUSA, За что отвечает (int)$_GET['idPolz'] в этой строке (int)???

Добавлено через 1 час 6 минут
Ссылка типа на пользователя ник-логин появилась, только когда я жду на любой логин то меня перекидывает на Это страница пользователя, ну и тут его логин выводится
А как сделать так что бы не только его логин выводился а вся его информация которую он заполнил в кабинете у себя?
А то я запутался.
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
30.11.2016, 20:15
Цитата Сообщение от _NE_KAKIX_IMEN_ Посмотреть сообщение
А как сделать так что бы не только его логин выводился а вся его информация которую он заполнил в кабинете у себя
в чем проблема? вы же достаете всю инфу о пользователе
Цитата Сообщение от _NE_KAKIX_IMEN_ Посмотреть сообщение
SELECT * FROM `users` WHERE `id`= :id
вот и выводите.
Цитата Сообщение от _NE_KAKIX_IMEN_ Посмотреть сообщение
$user['login']
PHP
1
2
echo $user['name'];
echo $user['lastname'];// и т.д. что там у вас в таблице
Добавлено через 1 минуту
если, нужно достать из другой таблицы, у вас же есть идентификатор пользователя
0
0 / 4 / 1
Регистрация: 20.05.2015
Сообщений: 450
30.11.2016, 20:32  [ТС]
fanatikus, так проблема в том что у меня информация в другой таблице)
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
30.11.2016, 20:34
Цитата Сообщение от _NE_KAKIX_IMEN_ Посмотреть сообщение
так проблема в том что у меня информация в другой таблице
Цитата Сообщение от fanatikus Посмотреть сообщение
у вас же есть идентификатор пользователя
в другой, но она же связана с пользователем по id?
0
0 / 4 / 1
Регистрация: 20.05.2015
Сообщений: 450
30.11.2016, 20:45  [ТС]
А связь лучше сделать через ключ или индекс ключ?
Таблица users:
Поля(id,login,email)

Таблица profiles:
Поля(id, users_id, name, lastname)

С первичными ключами я путаюсь, мне в таблице profiles полю users_id дать первичный ключ?
И с таблицы profiles поле users_id с таблицей users полем id?

Добавлено через 3 минуты
fanatikus, Я так понимаю?
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
30.11.2016, 20:53
насколько я помню, у вас в таблице user хранится логин и пароль, и есть еще таблица с остальными данными пользователя.
вот во второй таблице, есть поле user_id. правильно я помню? вот этот user_id и есть идентификатор пользователя. по нему и вытаскивайте.

Добавлено через 5 минут
Цитата Сообщение от _NE_KAKIX_IMEN_ Посмотреть сообщение
полю users_id дать первичный ключ?
не нужно, никому ничего давать. неужели так трудно понять что это идентификатор пользователя, id таблицы users == user_id таблицы profiles. у вас есть id. вот и доставайте по нему
SQL
1
SELECT * FROM `profiles` WHERE `user_id` = 'тут id'
0
0 / 4 / 1
Регистрация: 20.05.2015
Сообщений: 450
30.11.2016, 21:13  [ТС]
fanatikus, так а связь делать от id из табл users к users_id табл profiles или наоборот?
От users_id из табл profiles к id табл users?
Вот этого понять не могу.

Добавлено через 11 минут
fanatikus, и через какой ключ объединить эти поля?

Добавлено через 2 минуты
fanatikus, и вообще если пользователь заполняет свои данные, и они сохраняются у в базе и в его кабинете.
Это засчитывается что это личный кабинет пользователя?
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
30.11.2016, 21:22
users.id - PRIMARY KEY(первичный ключ)
profiles.user_id = FOREIGN KEY(внешний ключ)
нафиг вам, сейчас это . вытащить данные, сможете и без создания внешнего ключа. вы же добавляли данные в таблицу profiles? уже забили что там user_id это идентификатор пользователя. или, вы пишите, и не понимаете что?

Добавлено через 5 минут
Цитата Сообщение от _NE_KAKIX_IMEN_ Посмотреть сообщение
и вообще если пользователь заполняет свои данные, и они сохраняются у в базе и в его кабинете.
сами они не сохраняются. как вы напишите, так они и сохраняться.
Цитата Сообщение от _NE_KAKIX_IMEN_ Посмотреть сообщение
Это засчитывается что это личный кабинет пользователя?
что засчитывается?
php, сам ничего не засчитывает. что вы пишите, то он и выполняет. по щучьему велению, не бывает.
0
0 / 4 / 1
Регистрация: 20.05.2015
Сообщений: 450
30.11.2016, 21:44  [ТС]
fanatikus, Правильно понял?
PHP
1
2
3
4
 $sql = '
        SELECT *
        FROM `profiles`
        WHERE `users_id`!= "'. $_SESSION['id'] .'"';
Только теперь когда я хочу вывести логин который находится в таблице users то мне выдает ошибку(
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
30.11.2016, 21:47
Цитата Сообщение от _NE_KAKIX_IMEN_ Посмотреть сообщение
Правильно понял?
у меня, больше нет сил.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.11.2016, 21:47
Помогаю со студенческими работами здесь

Как сделать чтобы при нажатии на кнопку работала функция PHP
Как сделать чтобы при нажатии на кнопку работала функция PHP &lt;?php function random() { $a=rand(1,10); $b=rand(1,10); ...

Как сделать, чтобы при нажатии кнопки в программе на Lazarus изменялась база данных Mysql
Помогите

Как сделать так, чтобы при нажатии на поле выделялось его содержимое?
Я состряпал на сайте кнопку и поставил ниже её поле &lt;textarea&gt; c ссылкой и картинкой. И хочу, чтобы при нажатии в поле выделялось его...

Как сделать, чтобы в ListView при нажатии на позиции выводилось его название?
Добрый ночи такая небольшая проблема возникла как сделать чтобы в listview при нажатии на позиции выводилось его название. ...

Как сделать чтобы при повторном нажатии на элемент из массива его предыдущий цвет возвращался?
Добрый день. Мне нужно повторно поменять цвет эллипса. Как сделать .чтобы при повторном нажатие на элемент из массива его предыущий...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

Новые блоги и статьи
Оптимизация производительности Express.js бэкенда
Reangularity 23.05.2025
Express. js заслуженно остаётся одним из самых популярных инструментов для создания бэкенда, но даже он не застрахован от проблем с производительностью. Многие разработчики сталкиваются с ситуацией,. . .
Продвинутая обработка данных с LINQ в C#
stackOverflow 23.05.2025
LINQ (Language Integrated Query) — это фундаментальное изменение парадигмы работы с данными в C#. Простые запросы Where и Select знакомы любому разработчику, но настоящая мощь LINQ раскрывается в. . .
Инфраструктура PKI и сертификатов безопасности
Mr. Docker 23.05.2025
PKI (Public Key Infrastructure) — это невидимый фундамент цифрового доверия, без которого современный интернет просто рассыпался бы как карточный домик. За этой аббревиатурой скрывается целый. . .
Аутентификация OAuth в Python
py-thonny 22.05.2025
OAuth (Open Authorization) — это целый стандарт для делегированного доступа. Звучит занудно? Давайте проще: OAuth позволяет приложениям получать доступ к информации пользователя на сторонних сервисах. . .
Хеширование и соль паролей в веб-приложениях C#
stackOverflow 22.05.2025
Когда-то в начале своей карьеры я тоже грешил простейшими подходами к хранению паролей – MD5-хеширование казалось верхом защиты. Но технологии не стоят на месте, вычислительные мощьности растут, и. . .
Генераторы Python для эффективной обработки данных
AI_Generated 21.05.2025
В Python существует инструмент настолько мощный и в то же время недооценённый, что я часто сравниваю его с тайным оружием в арсенале программиста. Речь идёт о генераторах — одной из самых элегантных. . .
Чем заменить Swagger в .NET WebAPI
stackOverflow 21.05.2025
Если вы создавали Web API на . NET в последние несколько лет, то наверняка сталкивались с зелёным интерфейсом Swagger UI. Этот инструмент стал практически стандартом для документирования и. . .
Использование Linq2Db в проектах C# .NET
UnmanagedCoder 21.05.2025
Среди множества претендентов на корону "идеального ORM" особое место занимает Linq2Db — микро-ORM, балансирующий между мощью полноценных инструментов и легковесностью ручного написания SQL. Что. . .
Реализация Domain-Driven Design с Java
Javaican 20.05.2025
DDD — это настоящий спасательный круг для проектов со сложной бизнес-логикой. Подход, предложенный Эриком Эвансом, позволяет создавать элегантные решения, которые точно отражают реальную предметную. . .
Возможности и нововведения C# 14
stackOverflow 20.05.2025
Выход версии C# 14, который ожидается вместе с . NET 10, приносит ряд интересных нововведений, действительно упрощающих жизнь разработчиков. Вы уже хотите опробовать эти новшества? Не проблема! Просто. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru