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

Таблица рекордов

28.07.2012, 20:01. Показов 3672. Ответов 16
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет! Есть база данных. В нем написаны id, имена, фамилии пользователей и очки заработанные ими. Как из базы данных выбрать 10 человек с наибольшим количеством очков и расположить их по убыванию?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.07.2012, 20:01
Ответы с готовыми решениями:

Таблица рекордов
Создал игру для ВК на JS. Хочу сделать таблицу рекордов по ВСЕМ игрокам которые в неё играли. Как...

Таблица рекордов
Помогите найти ошибку. При работе процедуры постоянно получается, что количество набранных очков...

Таблица рекордов
нужно создать таблицу рекордов из 15 лучших игр в файле и вывести на экран. как сделать запись...

Таблица рекордов
Помогите сделать таблицу рекордов для игры. В таблице должно быть 2 поля: имя и рекорд. имя нужно...

16
6 / 6 / 5
Регистрация: 16.01.2012
Сообщений: 245
28.07.2012, 20:43 2
Скинь sql запрос таблицы своей, попытаюсь помочь.
0
0 / 0 / 0
Регистрация: 24.12.2010
Сообщений: 124
28.07.2012, 20:49  [ТС] 3
PHP
1
2
3
4
5
6
7
$link = mysql_connect($mysql_host, $mysql_user, $mysql_password)
or die("Could not connect : " . mysql_error());
mysql_select_db($my_database) or die("Could not select database"); 
 
$msg = "SELECT * FROM e_users where id = '$_id'";
$result = mysql_query($msg) or die("Query failed : " . mysql_error());
$line = mysql_fetch_array($result);
0
6 / 6 / 5
Регистрация: 16.01.2012
Сообщений: 245
28.07.2012, 20:59 4
После ORDER BY пиши по какому столбцу тебе нужно отсортировать (в твоём случае это сначало по очкам потом можешь ещё и через id)
PHP
1
$msg = "SELECT * FROM e_users ORDER BY здесь пишешь по какому полю тебе нужно отсортировать(получается тебе нужно вписать столбец с очками) DESC LIMIT 10";
Например если у меня будет столбец с очками называться och то будет вот так
PHP
1
$msg = "SELECT * FROM e_users ORDER BY och DESC, id DESC LIMIT 10";
1
0 / 0 / 0
Регистрация: 24.12.2010
Сообщений: 124
28.07.2012, 21:05  [ТС] 5
Это ты предлагаешь отсортировать в самой БД и оттуда уже считывать первые 10 человек?
0
6 / 6 / 5
Регистрация: 16.01.2012
Сообщений: 245
28.07.2012, 21:15 6
Я предлагаю сделать сначала выборку из базы данных а потом выводить уже списком например.
Вот наглядный пример с проверкой.
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
$dl = mysql_query("SELECT id,title FROM data ORDER BY och DESC, id DESC LIMIT 10",$db);
 
if (!$dl)
{
echo "<p>Запрос на выборку данных из базы не прошел. Ошибка <br> <strong>Код ошибки:</strong></p>";
exit(mysql_error());
}
 
if (mysql_num_rows($dl) > 0)
 
{
$my = mysql_fetch_array($dl);
 
do 
{
Тут уже выводи свой список из 10 человек
}
while ($my = mysql_fetch_array($dl));
}
else
{
echo "<p>Информация по запросу не может быть извлечена в таблице нет записей.</p>";
exit();
}
Да кстати очки в базе лучше хранить в "integer". В целых числах.
1
463 / 463 / 23
Регистрация: 17.08.2011
Сообщений: 1,488
28.07.2012, 22:49 7
Цитата Сообщение от Dimka1judo Посмотреть сообщение
Вот наглядный пример с проверкой.
Он, конечно нагляден, но не нужно такому учить Нам будет больше проблем потом отучивать от этого поповского г-на, которого пруд пруди...
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$errmsg = "<p>Запрос на выборку данных из базы не прошел. Ошибка <br> <strong>Код ошибки:</strong></p>";
$sql = "SELECT id,title FROM data ORDER BY och DESC, id DESC LIMIT 10";
$dl = mysql_query($sql,$db) or die($errmsg.mysql_error());
if (mysql_num_rows($dl) > 0)
{
    while($fetch = mysql_fetch_assoc($dl))
    {
        // Тут уже выводи свой список из 10 человек
    }
}
else 
{
    echo "<p>Информация по запросу не может быть извлечена в таблице нет записей.</p>";
}
2
0 / 0 / 0
Регистрация: 24.12.2010
Сообщений: 124
28.07.2012, 23:10  [ТС] 8
То есть выводить? мне бы в массив их записать. допустим в массив arr.
0
463 / 463 / 23
Регистрация: 17.08.2011
Сообщений: 1,488
28.07.2012, 23:14 9
Хорошо. С тебя структура таблицы

Добавлено через 2 минуты
Погоди, а зачем? Они же и так щас в массиве
1
0 / 0 / 0
Регистрация: 24.12.2010
Сообщений: 124
28.07.2012, 23:19  [ТС] 10
То есть теперь существует массив $fetch в котором записаны 10 первых пользователей? и я могу получить доступ к каждому вот так $fetch[0], $fetch[1] и тд?
0
463 / 463 / 23
Регистрация: 17.08.2011
Сообщений: 1,488
28.07.2012, 23:22 11
да, да! Только не по индексам а по названиям полей! $fetch['id'], $fetch['title'] и т.д.
1
0 / 0 / 0
Регистрация: 24.12.2010
Сообщений: 124
28.07.2012, 23:31  [ТС] 12
Тогда мне не понятно. Как мне всех десятерых то вывести? Если все так как ты написал то выводится только один. Разве нет? Мне нужно чтобы в конце получилась одна переменная-массив в котором бы содержались id этих десятерых.

Добавлено через 2 минуты
Если я получу эти id. То я из базы данных смогу всю их информацию вытащить.
0
463 / 463 / 23
Регистрация: 17.08.2011
Сообщений: 1,488
28.07.2012, 23:42 13
Нет не один. Цикл WHILE тебе встречался?
Покааааа.... из базы есть что тащить --- тащим!

Добавлено через 2 минуты
Можно хоть так написать:
PHP
1
2
3
4
5
6
7
if (mysql_num_rows($dl) > 0)
{
    while($fetch = mysql_fetch_assoc($dl))
    {
        echo 'Пользователь ' . $fetch['username'] . 'Его ID '. $fetch['id'];
    }
}
Понятна идея?
1
18 / 15 / 0
Регистрация: 25.10.2011
Сообщений: 241
29.07.2012, 15:15 14
Цитата Сообщение от Денис Н. Посмотреть сообщение
Нам будет больше проблем потом отучивать от этого поповского г-на, которого пруд пруди...

Не по теме:


объясните почему все против попова и его "г..вна"?
за этот только час, прочитав пару тем, все только об этом и пишут.
тока по нормальному, а не - "он просто г..внокодер";

1
6 / 6 / 5
Регистрация: 16.01.2012
Сообщений: 245
29.07.2012, 15:27 15
Цитата Сообщение от stupidstudent Посмотреть сообщение
объясните почему все против попова и его "г..вна"?
за этот только час, прочитав пару тем, все только об этом и пишут.
тока по нормальному, а не - "он просто г..внокодер";
Мне вот тоже интересно почему именно так всё плохо? Уже второй раз на форуме видел что про попова уроки прям куда деваться плохо всё. Ведь его циклы работают ведь! Тогда почему это всё так запущено? Соглашусь с "stupidstudent", что объясните почему и тогда что посоветуете?
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16844 / 6723 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
29.07.2012, 15:36 16

Не по теме:

имхо, не стоит здесь разводить полемику и холливар на сто страниц. если вас это так сильно интересует - создайте отдельную тему и, я думаю, вам в ней с удовольствием ответят и объяснят что и почему



Добавлено через 1 минуту
1
463 / 463 / 23
Регистрация: 17.08.2011
Сообщений: 1,488
29.07.2012, 16:32 17
Отвечу лишь про циклы.
Господин, так сказать, Попов, использует в своих кодах цикл с пост-условием, который, да, работает, но он оказался не в том месте и не тогда, когда нужно, поскольку, пока, например, записи при выборке из базы есть, всё замечательно, но что будет, если не окажется записей, удовлетворяющих запросу по каким-либо причинам? "Поповский" цикл отработает, ибо он проверяет после итерации, ничего не увидит, иии?.. Плюс ко всему для такого цикла нужно два раза создавать один и тот же дескриптор запроса (одинаковый). Это лишь часть... Как верно заметил KOPOJI, не будем здесь разводить Holy War.

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

Добавлено через 2 минуты
Посты #7 и #13
0
29.07.2012, 16:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.07.2012, 16:32
Помогаю со студенческими работами здесь

Таблица рекордов
Добрый день! Помогите пожалуйста разобраться с этим вопросом, впервые создаю игру, поэтому совсем...

Таблица рекордов
Три спортсмена бежали дистанцию, каждый пробежал за определенное время. Выведите таблицу рекордов,...

Таблица рекордов из 5 человек
Помогите пожалуйста сделать таблицу рекордов из 5 человек, нужно создать файл, после нужно вывести...

Таймер и таблица рекордов
есть игра угадай слово, не могу понять как сделать таймер к игре, то есть допустим 2 минуты на...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru