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

Вывод из Mysql в PHP (Топ пользователей)

21.10.2013, 18:35. Показов 6468. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Объясните пожалуйста новичку,как сделать такой топ
Название: M56pata.png
Просмотров: 342

Размер: 133.3 Кб

Сколько уже бьюсь,не могу понять...
Нужно вывести Ник пользователя,его уровень(нажав на ник можно открыть инфо юзера) и значок клана пользователя(из другой таблицы)((тоже по нажатию открывается инфа)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.10.2013, 18:35
Ответы с готовыми решениями:

Топ рефералов, mysql+php
Здравствуйте, мне нужно сделать "топ популярных рефералов". Структура базы данных: у каждой строки есть параметр "referal",...

Отзывы зарегистрированных пользователей в PHP +Mysql
Добрый вечер! Есть база данных в MySql, а там таблица с пользователями. И хотелось бы сделать форму отзывов, ввиде комментариев но...

Как создать систему личных сообщений или переписку пользователей на сайте php mysql?
Всем привет, кто мне подскажет как организовать систему личный сообщений, ну или переписку между пользователями сайта? Если у кого есть...

16
 Аватар для tomgoldman
0 / 0 / 0
Регистрация: 18.10.2013
Сообщений: 14
22.10.2013, 02:54
Покажите, как выглядит Ваша база данных
0
1 / 1 / 1
Регистрация: 21.10.2013
Сообщений: 110
22.10.2013, 14:13  [ТС]
Цитата Сообщение от tomgoldman Посмотреть сообщение
Покажите, как выглядит Ваша база данных
MySQL
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
CREATE TABLE IF NOT EXISTS `users` (
  `ind` int(11) NOT NULL AUTO_INCREMENT,
  `login` varchar(20) NOT NULL DEFAULT '',
  `password` varchar(32) NOT NULL DEFAULT '',
  `password_clean` varchar(32) NOT NULL DEFAULT '',
  `FIO` varchar(100) NOT NULL,
  `sex` tinyint(1) NOT NULL DEFAULT '0',
  `strength` int(5) NOT NULL DEFAULT '0',
  `dexterity` int(5) NOT NULL DEFAULT '0',
  `endurance` int(5) NOT NULL DEFAULT '0',
  `intellect` int(5) NOT NULL DEFAULT '0',
  `perception` int(5) NOT NULL DEFAULT '0',
  `charm` int(5) NOT NULL DEFAULT '0',
  `race` varchar(10) NOT NULL DEFAULT '',
  `money` double NOT NULL DEFAULT '0',
  `health_c` int(11) NOT NULL DEFAULT '0',
  `user_npc` tinyint(1) NOT NULL DEFAULT '0',
  `experience` double NOT NULL DEFAULT '0',
  `obraz` varchar(250) NOT NULL DEFAULT 'img\\human\\obraz\\emptyman.gif',
  `biography` varchar(1000) NOT NULL DEFAULT 'пусто',
  `deviz` varchar(1000) NOT NULL DEFAULT 'пусто',
  `infection` tinyint(1) NOT NULL DEFAULT '0',
  `skill_points` double NOT NULL DEFAULT '0',
  `level` smallint(6) NOT NULL DEFAULT '0',
  `email` varchar(50) NOT NULL DEFAULT '',
  `strength_inf` smallint(6) NOT NULL DEFAULT '0',
  `dexterity_inf` smallint(6) NOT NULL DEFAULT '0',
  `endurance_inf` smallint(6) NOT NULL DEFAULT '0',
  `intellect_inf` smallint(6) NOT NULL DEFAULT '0',
  `perception_inf` smallint(6) NOT NULL DEFAULT '0',
  `charm_inf` smallint(6) NOT NULL DEFAULT '0',
  `level_inf` smallint(6) NOT NULL DEFAULT '0',
  `experience_inf` double NOT NULL DEFAULT '0',
  `skill_points_inf` double NOT NULL DEFAULT '0',
  `free_char_points` smallint(6) NOT NULL DEFAULT '0',
  `obraz_inf` varchar(250) NOT NULL DEFAULT 'img\\infected\\obraz\\zombie_man_1.gif',
  `free_char_points_inf` smallint(6) NOT NULL DEFAULT '0',
  `killed_humans` int(11) NOT NULL DEFAULT '0',
  `killed_zombies` int(11) NOT NULL DEFAULT '0',
  `killed_humans_inf` int(11) NOT NULL DEFAULT '0',
  `killed_zombies_inf` int(11) NOT NULL DEFAULT '0',
  `free_ap` smallint(6) NOT NULL DEFAULT '96',
  `ap_adding_time` int(11) NOT NULL DEFAULT '0',
  `prof_before` varchar(30) NOT NULL DEFAULT '',
  `last_event_check_time` int(11) NOT NULL DEFAULT '0',
  `group_name` varchar(50) NOT NULL DEFAULT 'empty',
  `user_down` tinyint(1) NOT NULL DEFAULT '0',
  `birth_day` int(2) NOT NULL DEFAULT '0',
  `birth_month` int(2) NOT NULL DEFAULT '0',
  `birth_year` int(4) NOT NULL DEFAULT '0',
  `bonus_points` int(5) NOT NULL DEFAULT '0',
  `logins_cnt` int(11) NOT NULL DEFAULT '0',
  `game_birthday` bigint(20) NOT NULL DEFAULT '0',
  `sleep` tinyint(1) NOT NULL DEFAULT '0',
  `add_str` int(2) NOT NULL DEFAULT '0',
  `add_str_time` bigint(20) NOT NULL DEFAULT '0',
  `group_symbol_img` varchar(250) NOT NULL DEFAULT '-',
  `secret_q` varchar(250) NOT NULL DEFAULT '-',
  `secret_a` varchar(250) NOT NULL DEFAULT '-',
  `ban` tinyint(1) NOT NULL DEFAULT '0',
  `ban_reason` varchar(250) NOT NULL DEFAULT '-',
  `quest_npc` tinyint(1) NOT NULL DEFAULT '0',
  `sbros_harakreristik` smallint(2) NOT NULL DEFAULT '0',
  `sbros_skillov` tinyint(1) NOT NULL DEFAULT '0',
  `npc_mods_id` int(3) NOT NULL DEFAULT '0',
  `infight_pic` varchar(50) NOT NULL DEFAULT '-',
  `nastavnik` tinyint(1) NOT NULL DEFAULT '0',
  `moderator` smallint(1) NOT NULL DEFAULT '0',
  `nastavnik_conf` tinyint(1) NOT NULL DEFAULT '0',
  `user_down_time` bigint(20) NOT NULL DEFAULT '0',
  `jail_srok` bigint(20) NOT NULL DEFAULT '0',
  `jail_times` smallint(3) NOT NULL DEFAULT '0',
  `blood` int(11) NOT NULL DEFAULT '0',
  `hunger` smallint(6) NOT NULL DEFAULT '50',
  `remind_id` smallint(2) NOT NULL DEFAULT '0',
  `carma` smallint(3) NOT NULL DEFAULT '0',
  `f_init` tinyint(1) NOT NULL DEFAULT '0',
  `penalty` int(11) NOT NULL DEFAULT '0',
  `top_panel` int(1) NOT NULL,
  `pet` int(1) NOT NULL,
  `id_hoz` int(11) NOT NULL,
  PRIMARY KEY (`ind`),
  KEY `group_id` (`group_name`),
  KEY `login` (`login`),
  KEY `race` (`race`),
  KEY `infection` (`infection`),
  KEY `health_c` (`health_c`),
  KEY `user_npc` (`user_npc`),
  KEY `hunger` (`hunger`)
Вот структура.

Добавлено через 6 часов 49 минут
Все чего я пока добился(От нечего делать решил попробовать только на один акк инфу вывести)


Нажимая на ник откроем инфу перса,нажимая на флаг инфу клана.
Сам код(нервным не смотреть):
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
$res = mysql_query("SELECT login FROM users");
$users = mysql_result($res,0,'login');
$res1 = mysql_query("SELECT level FROM users WHERE login = '$users'");
$level = mysql_result($res1,0,'level');
$res2 = mysql_query("SELECT ind FROM users WHERE login = '$users'");
$ind = mysql_result($res2,0,'ind');
$res3 = mysql_query("SELECT group_symbol_img FROM player_groups WHERE member_id = '$ind'");
$group_symbol_img = mysql_result($res3,0,'group_symbol_img');
$res4 = mysql_query("SELECT group_id FROM player_groups WHERE member_id = '$ind'");
$group_id = mysql_result($res4,0,'group_id');
echo
"<tr>
    <a href ='/char.php?ind=$ind'>$users</a>
    $level
    <a href ='/group_info.php?g_id=$group_id'><img src= '$group_symbol_img'></a>
</tr>";
?>
0
1 / 1 / 1
Регистрация: 21.10.2013
Сообщений: 110
23.10.2013, 17:12  [ТС]
Ап темы...так и не могу решить проблему...
0
 Аватар для KaRaNTiN
44 / 44 / 11
Регистрация: 10.06.2009
Сообщений: 311
Записей в блоге: 2
23.10.2013, 17:48
PHP
1
2
3
4
5
<?php 
$rez = mysql_query("SELECT * FROM users ORDER BY level");
while($rezult = mysql_fetch_array($rez)){?>
<a href="#"><?php echo trim(htmlspecialchars(strip_tags($rezult['login'])));?></a>[<?php echo $rezult['level']?>]
<?php }?>
1
1 / 1 / 1
Регистрация: 21.10.2013
Сообщений: 110
23.10.2013, 18:13  [ТС]
Цитата Сообщение от KaRaNTiN Посмотреть сообщение
PHP
1
2
3
4
5
<?php 
$rez = mysql_query("SELECT * FROM users ORDER BY level");
while($rezult = mysql_fetch_array($rez)){?>
<a href="#"><?php echo trim(htmlspecialchars(strip_tags($rezult['login'])));?></a>[<?php echo $rezult['level']?>]
<?php }?>
Ох спасибо огромное))
А вот еще вопрос,можно?)
Как сделать чтобы он выводил например от 10 уровня игроков и выше?(level)
И чтобы они шли в столбик а не друг за другом кучкой?)
0
 Аватар для KaRaNTiN
44 / 44 / 11
Регистрация: 10.06.2009
Сообщений: 311
Записей в блоге: 2
23.10.2013, 18:18
Цитата Сообщение от Nasdomlan Посмотреть сообщение
Ох спасибо огромное))
А вот еще вопрос,можно?)
Как сделать чтобы он выводил например от 10 уровня игроков и выше?(level)
И чтобы они шли в столбик а не друг за другом кучкой?)
Для благодарностей кнопочка под сообщением есть (:

Измени заспрос, добавив условие
MySQL
1
SELECT * FROM users WHERE level > 9 ORDER BY level
а чтобы в столбик уже сам думай делай либо таблицей и в цикле выводи:
HTML5
1
2
3
<tr>
<td><a href="#"><?php echo trim(htmlspecialchars(strip_tags($rezult['login'])));?></a>[<?php echo $rezult['level']?>]</td>
</tr>
либо списком
HTML5
1
<ul><li></li></ul>
1
1 / 1 / 1
Регистрация: 21.10.2013
Сообщений: 110
23.10.2013, 21:30  [ТС]
Просто для меня главная проблема в том,что нужно чтобы нажав на ник открылась инфа перса (ссылка вида /char.php?ind=$id(его думал получать запросом) и за уровнем иконка клана с такой же функцией...
Как вывести то просто лвл и ник я понял уже и сам))А вот это сложнее уже...

Добавлено через 3 часа 10 минут
Я стремлюсь к
1)Пользователь(ник)(обязательно через Where user_npc 0 AND level > 10)иначе будут проблемы
2)При нажатии на ник открывается его профиль,ссылка такого вида char.php?ind=20930(где 20930 его ид,он там же где и логин,думаю можно получать через переменную)
3)После уровня выводим эмблему клана,если её нет то спец картинку,по нажатию на которую открывается инфа о клане по схеме как и у логина.
0
14 / 14 / 3
Регистрация: 06.03.2013
Сообщений: 89
24.10.2013, 09:25
Цитата Сообщение от Nasdomlan Посмотреть сообщение
1)Пользователь(ник)(обязательно через Where user_npc 0 AND level > 10)иначе будут проблемы
Какие, например?

Цитата Сообщение от Nasdomlan Посмотреть сообщение
2)При нажатии на ник открывается его профиль,ссылка такого вида char.php?ind=20930(где 20930 его ид,он там же где и логин,думаю можно получать через переменную)
Не знаю насколько принципиально надо делать всё именно GET-методом, я бы сделал так:
a) При запросе к БД получаете данные (все, которые собираетесь отображать в прифиле пользователя)
b) В списке выводите только имя и уровень (остальные данные передаете в скрытых полях), вот так
PHP
1
<input type="hidden" name="group" value="group_name">
При нажатии на профиль пользователя берете данные из скрытых полей и используете в запросе к БД

Цитата Сообщение от Nasdomlan Посмотреть сообщение
3)После уровня выводим эмблему клана,если её нет то спец картинку,по нажатию на которую открывается инфа о клане по схеме как и у логина.
Так же поступаете и с выводом данных группы. Если на чистом ПХП - надо первоначальные данные (имя пользователя, уровень) также передавать в скрытых полях. Можно сделать и AJAX`om, тогда (имя пользователя, уровень) передавать может и не потребуется
0
1 / 1 / 1
Регистрация: 21.10.2013
Сообщений: 110
24.10.2013, 13:04  [ТС]
Цитата Сообщение от Fatal-Error Посмотреть сообщение
Какие, например?
Например он выведет всех ботов,а не игроков)
0
14 / 14 / 3
Регистрация: 06.03.2013
Сообщений: 89
24.10.2013, 16:26
Цитата Сообщение от Nasdomlan Посмотреть сообщение
Например он выведет всех ботов,а не игроков)
Не вижу проблемы, можно для ботов создать флажок в БД
0
1 / 1 / 1
Регистрация: 21.10.2013
Сообщений: 110
25.10.2013, 07:31  [ТС]
Цитата Сообщение от Fatal-Error Посмотреть сообщение
Не вижу проблемы, можно для ботов создать флажок в БД
Вот этот параметр и есть как флажок)

Добавлено через 17 минут
И еще подскажите пожалуйста
MySQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
        //ОПРЕДЕЛИМ ТЕКУЩЕЕ КОЛИЧЕСТВО ГРУПП:
        $query = "SELECT MAX(group_id) AS gr_m FROM player_groups";
        $result=mysql_query($query, $ServerLink) or die("Ошибка!: "."<a href='/tech_support.php'>Напишите нам об ошибке здесь..</a>");
 
        $group_cnt = mysql_result($result,0,'gr_m')+1;
 
        //Создадим новую группу:
        $update_query = "INSERT INTO player_groups (group_name,group_symbol_img,group_leader_id,member_id,group_id,race)
            VALUES ('$group_name','-','$id','$id','$group_cnt','$race')";
        $update_result=mysql_query($update_query, $ServerLink) or die("Ошибка!: "."<a href='/tech_support.php'>Напишите нам об ошибке здесь..</a>");
 
        //запишем в базу данные:
        $update_users_query = "UPDATE users
            SET free_ap=free_ap-10
              WHERE ind = $id"; 
        $update_users_result=mysql_query($update_users_query, $ServerLink) or die("Ошибка!: "."<a href='/tech_support.php'>Напишите нам об ошибке здесь..</a>");
Что надо прописать,чтобы он еще в одну таблицу (users_groups_info) заполнял поля id name?
0
14 / 14 / 3
Регистрация: 06.03.2013
Сообщений: 89
25.10.2013, 16:05
может быть, INSERT? В смысле добавите еще 1 SQL-запрос на добавление записи в таблицу

Вообще почитайте mysql_num_rows и mysql_affected_rows
Там указаны все комадны, которые могут потребоваться на первое время. Заодно почитаете как работать с результатами SQL-запросов
0
1 / 1 / 1
Регистрация: 21.10.2013
Сообщений: 110
25.10.2013, 21:25  [ТС]
Цитата Сообщение от Fatal-Error Посмотреть сообщение
может быть, INSERT? В смысле добавите еще 1 SQL-запрос на добавление записи в таблицу

Вообще почитайте mysql_num_rows и mysql_affected_rows
Там указаны все комадны, которые могут потребоваться на первое время. Заодно почитаете как работать с результатами SQL-запросов
Пытался,не выполняет его почему то...
0
14 / 14 / 3
Регистрация: 06.03.2013
Сообщений: 89
26.10.2013, 06:11
Ошибка какая-то есть? Что выводит на экран? Как выглядит ваш запрос?
0
1 / 1 / 1
Регистрация: 21.10.2013
Сообщений: 110
27.10.2013, 08:46  [ТС]
Цитата Сообщение от Fatal-Error Посмотреть сообщение
Ошибка какая-то есть? Что выводит на экран? Как выглядит ваш запрос?
MySQL
1
2
3
$update_query = "INSERT INTO player_groups_info (gr_id,deviz,site)
            VALUES ('$group_cnt', ' ',' ')";
        $update_result=mysql_query($update_query, $ServerLink) or die("Ошибка!: "."<a href='/tech_support.php'>Напишите нам об ошибке здесь..</a>");
Примерно так
0
14 / 14 / 3
Регистрация: 06.03.2013
Сообщений: 89
27.10.2013, 12:27
Цитата Сообщение от Nasdomlan Посмотреть сообщение
MySQL
1
2
3
$update_query = "INSERT INTO player_groups_info (gr_id,deviz,site)
            VALUES ('$group_cnt', ' ',' ')";
        $update_result=mysql_query($update_query, $ServerLink) or die("Ошибка!: "."<a href='/tech_support.php'>Напишите нам об ошибке здесь..</a>");
Примерно так
И что происходит? Выдает ошибку? Какую?

Напишите сюда команду, которой создаете таблицу "player_groups_info"

Выполнение запроса лучше писать так
PHP
1
$update_result=mysql_query($update_query, $ServerLink) or die(mysql_error());
Тогда, при ошибке в выполнении запроса на экран выводится ошибка
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.10.2013, 12:27
Помогаю со студенческими работами здесь

Вывести топ пользователей
Есть 2 таблицы: Feld и Vizovi. Нужно выбрать 3 лучших фельдшера, т.е. тех, у которых колличество вызовов(строк в этой таблице)...

Топ пользователей по заработку из файла
Всем доброго времени суток! Никак не могу найти, как подсчитать заработанные деньги пользователем, когда они записываются в файл? ...

Топ прожорливых пользователей на файловом сервере
Добрый день! Нужен совет по написанию скрипта. В данный момент у меня по скрипту генерится: 1. Топ-30 самых тяжелых файлов ...

Топ пользователей через ForeignKey поле модели
Суть: необходимо составить топ3 пользователей текущего месяца по показателю &quot;комментарии&quot;. Для выборки по датам использую pytz. ...

SQL запрос для вывода топ-10 пользователей
Доброго времени суток, помогите, пожалуйста, сформулировать запрос к таблице users в которой находятся данные пользователей сайта. У...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение Это мой обзор планшета X220 с точки зрения школьника. Недавно я решила попытаться уменьшить свой. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru