Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 5.00/18: Рейтинг темы: голосов - 18, средняя оценка - 5.00
0 / 4 / 1
Регистрация: 20.05.2015
Сообщений: 450

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

30.11.2016, 12:05. Показов 4125. Ответов 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
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru