• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Вывод Данных Из Базы Mysql

  • Автор темы BlackShadow
  • Дата начала
B

BlackShadow

Доброе утро, уважаемые программисты. У меня есть сайт с табличными данными покера (ну, увлекаемся с друзьями, интересно же знать кто сколько и когда). Так вот.
Сейчас там используется файловая база данных. Сейчас объясню, что это такое.

Когда я только только создал сайт, я столкнулся с проблемой добавления новых игроков в базе MySQL. Меня охватила паника - как это сделать??? Поэтому я сачконул и сделал так:
1) Все имена игроков записываются в файлы по типу player[N].nm. Соответственно, в отдельном файле players.cou я храню общее количество игроков
2) Все дни, в которые мы играли в покер, я храню в файлах day[M].day, в котором записана дата игры (2.06.2012, 4.07.2012 и т.д.). Соответственно, в отдельном файле days.cou я храню общее количество сыгранных нами дней.
3) КОНЕЧНЫЙ РЕЗУЛЬТАТ (то есть, не то количество денег, которое он выиграл, а то, которое у него стало на данный момент) я записывал в файлы p[N]d[M].mon. Пример: человек начал только вот играть 1.01.01 и он проиграл 10 рублей, следовательно, в статистику на 1.01.01 будет записано -10. Он 2.02.02 проиграл 12 рублей, следовательно, в статистику на 2.02.02 у него будет записано НЕ -12, а -22! Вот о чем я говорю.

Так вот. В чем моя проблема. Мне надоело всё дело хранить в файлах, потому что надоело качать по 700 файлов результатов. + долго страница загружается (на странице 2 цикла: 1 цикл формирует шапку, второй - двойной. наружный for для дней, внутренний - для игроков (формирование файла p[N]d[M].mon)).

Я создал базу и в ней 3 таблицы:
Таблица №1 [Имена игроков]: {ID | Имя игрока} - id | player
Таблица №2 [Даты]: {ID | Дата} - id | day
Таблица №3 (самая важная) [Игры]: {ID | ID игрока | ID дня | Результат} - id | player_id | day_id | result

Примерная структура третьей таблицы:
игрок1 день1 результат
игрок1 день2 результат
игрок1 день3 результат
игрок1 день4 результат
игрок2 день1 результат
игрок2 день2 результат
игрок2 день3 результат
игрок2 день4 результат

Так вот. Я никак не могу подобрать запрос (или ряд запросов) MySQL, чтобы вывести все данные таблицы, как это сейчас выведено на сайте . Ну, цвета не обязательно, НО главное, чтобы было выведено так, как сейчас выглядит главная страница сайта. Очень прошу кого-нибудь помочь с запросами.

P.S. Кому лень переходить на сайт - вот скриншот таблицы:
Безымянный.png

P.P.S. Но если хотите - можете посмотреть на сайте на интересную диаграмму :rolleyes: Она внизу таблицы ^_^

Заранее, огромное спасибо!
 
A

ashby

Для вывода такой таблицы вовсе не нужно знать данные о каждой операции, достаточно сохранять текущий для каждый даты счет игрока.
По крайней мере эти данные точно не понадобятся для отображения таблицы (иначе придется для каждой даты делать свой собственный запрос со своим подсчетом).
Далее можно вывести одним запросом первую строчку с именами игроков, отсортировав их по ID.
Таким образом, если сгруппировав по датам историю счетов и отсортировав по возрастанию даты и ID игроков (именно в этом порядке), то каждые следующие N+1 (N - количество всех игроков) записей нужно будет просто вывести в одном <tr>.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!