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

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

30.11.2016, 12:05. Показов 2599. Ответов 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
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.11.2016, 12:05
Ответы с готовыми решениями:

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

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

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

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

35
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
30.11.2016, 12:26 2
Цитата Сообщение от _NE_KAKIX_IMEN_ Посмотреть сообщение
Одним словом нажать на ник или логин, и вас перекидывает на его страницу, с его данными.
Сделать ник или логин ссылкой на страницу
0
Заблокирован
30.11.2016, 12:37 3
И, естественно, сделать сами страницы пользователей, если их нет.
0
Web Programmer
325 / 286 / 121
Регистрация: 28.09.2011
Сообщений: 1,570
30.11.2016, 13:37 4
_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  [ТС] 5
miketomlin, Виталюска, Вот как раз страницы пользователей есть. А вот ссылку по по нажатию ника у меня не получается сделать. Вот я и написал что бы мне помогли.

Добавлено через 1 минуту
JimUSA, Спасибо, вечерком зайду и опробую код. Только я это все делаю через pdo mysql подключения.
0
Web Programmer
325 / 286 / 121
Регистрация: 28.09.2011
Сообщений: 1,570
30.11.2016, 14:26 6
_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  [ТС] 7
JimUSA, Вот теперь отличный ответ, сейчас разбирать буду что к чему) Спасибо.
0
Заблокирован
30.11.2016, 17:23 8
Зачем вам это? Вы же написали, что страницы у вас есть. Формируйте список со ссылками нужного формата и все.
0
0 / 4 / 1
Регистрация: 20.05.2015
Сообщений: 450
30.11.2016, 18:34  [ТС] 9
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
325 / 286 / 121
Регистрация: 28.09.2011
Сообщений: 1,570
30.11.2016, 18:39 10
_NE_KAKIX_IMEN_, Ваш пример empty будет работать также.
только лучше сделать (int)$_GET['idPolz']
0
0 / 4 / 1
Регистрация: 20.05.2015
Сообщений: 450
30.11.2016, 19:59  [ТС] 11
JimUSA, Ок сделаю, я по не многу разбираюсь, я не профи в этом но уже не много понимаю. А организован код лучше или так же?
Да и информация о пользователе хранится у меня в другой таблице. Не пойму как вывести эту инфу)))
Сейчас посижу и еще подумаю.

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

Добавлено через 1 час 6 минут
Ссылка типа на пользователя ник-логин появилась, только когда я жду на любой логин то меня перекидывает на Это страница пользователя, ну и тут его логин выводится
А как сделать так что бы не только его логин выводился а вся его информация которую он заполнил в кабинете у себя?
А то я запутался.
0
1931 / 1522 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
30.11.2016, 20:15 12
Цитата Сообщение от _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  [ТС] 13
fanatikus, так проблема в том что у меня информация в другой таблице)
0
1931 / 1522 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
30.11.2016, 20:34 14
Цитата Сообщение от _NE_KAKIX_IMEN_ Посмотреть сообщение
так проблема в том что у меня информация в другой таблице
Цитата Сообщение от fanatikus Посмотреть сообщение
у вас же есть идентификатор пользователя
в другой, но она же связана с пользователем по id?
0
0 / 4 / 1
Регистрация: 20.05.2015
Сообщений: 450
30.11.2016, 20:45  [ТС] 15
А связь лучше сделать через ключ или индекс ключ?
Таблица users:
Поля(id,login,email)

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

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

Добавлено через 3 минуты
fanatikus, Я так понимаю?
0
1931 / 1522 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
30.11.2016, 20:53 16
насколько я помню, у вас в таблице 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  [ТС] 17
fanatikus, так а связь делать от id из табл users к users_id табл profiles или наоборот?
От users_id из табл profiles к id табл users?
Вот этого понять не могу.

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

Добавлено через 2 минуты
fanatikus, и вообще если пользователь заполняет свои данные, и они сохраняются у в базе и в его кабинете.
Это засчитывается что это личный кабинет пользователя?
0
1931 / 1522 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
30.11.2016, 21:22 18
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  [ТС] 19
fanatikus, Правильно понял?
PHP
1
2
3
4
 $sql = '
        SELECT *
        FROM `profiles`
        WHERE `users_id`!= "'. $_SESSION['id'] .'"';
Только теперь когда я хочу вывести логин который находится в таблице users то мне выдает ошибку(
0
1931 / 1522 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
30.11.2016, 21:47 20
Цитата Сообщение от _NE_KAKIX_IMEN_ Посмотреть сообщение
Правильно понял?
у меня, больше нет сил.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.11.2016, 21:47
Помогаю со студенческими работами здесь

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

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

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

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

как сделать чтобы при нажатии на кнопку производились с ней операции среди большинства кнопок (php, html)?
С помощью этого кода выводятся все зарегистрированные пользователи из БД: &lt;?php ...

как сделать так чтобы при нажатии на крестик или на кнопку Завершить выбивало подтверждающих закрытия
как сделать так чтобы при нажатии на крестик или на кнопку Завершить выбивало подтверждающих...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru