Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] Sortowanie wyników
diamondking
post
Post #1





Grupa: Zarejestrowani
Postów: 100
Pomógł: 0
Dołączył: 7.02.2014

Ostrzeżenie: (0%)
-----


Hej (IMG:style_emoticons/default/wink.gif)
Jestem przedszkolakiem i potrzebuję nakierowania jak mogę rozwiązać swój problem (IMG:style_emoticons/default/smile.gif)

W bazie danych mam tabele:

• Gracze (tam jest login, id i inne pola typu siła, szybkośc itp)
• Turniej (tu przechowuję tylko id graczy, którzy zgłosili się do turnieju).

Chcę by raz dziennie (to zrobię zadaniem cron) pobierało mi najpierw wszytskie ID graczy z tabeli turniej,
następnie np. pobierało siłę i szybkość danego gracza z tabeli gracze - mnożyło to (siła * szybkość)
i finalnie sortowało wyniki od najwyższego do najniższego.

Nakierujecie mnie jak mogę to rozwiązać ?
Powód edycji: [nospor]:
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Neutral
post
Post #2





Grupa: Zarejestrowani
Postów: 286
Pomógł: 46
Dołączył: 10.01.2016

Ostrzeżenie: (0%)
-----


Nie wiem jak miałoby to działać, ale może lepiej byłoby gdybyś napisał event scheduler po stronie bazy danych.

  1. SELECT * FROM magazine;


Kod
+--------+-----------+------------+---------+------+
| index1 | magazine1 | date1      | changed | sum1 |
+--------+-----------+------------+---------+------+
|    101 |         1 | 2019-09-12 |      20 |   20 |
|    102 |         1 | 2019-09-13 |      50 |   50 |
|    102 |         2 | 2019-09-14 |     -20 |  -20 |
|    101 |         2 | 2019-09-15 |      -5 |   -5 |
|    102 |         2 | 2019-09-16 |      -5 |  -25 |
|    101 |         1 | 2019-09-17 |      30 |   50 |
|    102 |         1 | 2019-09-18 |     -10 |   40 |
|    101 |         1 | 2019-09-19 |     100 |  150 |
+--------+-----------+------------+---------+------+


  1. SELECT * FROM skills;


Kod
+-----------+-------------+
| id_animal | name_animal |
+-----------+-------------+
|         1 | cat         |
|         2 | sparrow     |
|         4 | crane       |
|         1 | dog         |
|         4 | hawk        |
+-----------+-------------+


  1. SELECT skills.id_animal,magazine.changed,magazine.sum1,(magazine.changed*magazine.sum1) AS mult1 FROM skills,magazine ORDER BY skills.id_animal ASC;


Kod
+-----------+---------+------+-------+
| id_animal | changed | sum1 | mult1 |
+-----------+---------+------+-------+
|         1 |     -20 |  -20 |   400 |
|         1 |      -5 |  -25 |   125 |
|         1 |     -10 |   40 |  -400 |
|         1 |      50 |   50 |  2500 |
|         1 |      -5 |   -5 |    25 |
|         1 |      30 |   50 |  1500 |
|         1 |     100 |  150 | 15000 |
|         1 |      20 |   20 |   400 |
|         1 |     -20 |  -20 |   400 |
|         1 |      -5 |  -25 |   125 |
|         1 |     -10 |   40 |  -400 |
|         1 |      50 |   50 |  2500 |
|         1 |      -5 |   -5 |    25 |
|         1 |      30 |   50 |  1500 |
|         1 |      20 |   20 |   400 |
|         1 |     100 |  150 | 15000 |
|         2 |     100 |  150 | 15000 |
|         2 |     -20 |  -20 |   400 |
|         2 |     -10 |   40 |  -400 |
|         2 |      50 |   50 |  2500 |
|         2 |      30 |   50 |  1500 |
|         2 |      20 |   20 |   400 |
|         2 |      -5 |  -25 |   125 |
|         2 |      -5 |   -5 |    25 |
|         4 |      30 |   50 |  1500 |
|         4 |      20 |   20 |   400 |
|         4 |      -5 |   -5 |    25 |
|         4 |      -5 |  -25 |   125 |
|         4 |     100 |  150 | 15000 |
|         4 |     -20 |  -20 |   400 |
|         4 |      -5 |   -5 |    25 |
|         4 |     -10 |   40 |  -400 |
|         4 |      50 |   50 |  2500 |
|         4 |     100 |  150 | 15000 |
|         4 |     -20 |  -20 |   400 |
|         4 |      30 |   50 |  1500 |
|         4 |      20 |   20 |   400 |
|         4 |     -10 |   40 |  -400 |
|         4 |      50 |   50 |  2500 |
|         4 |      -5 |  -25 |   125 |
+-----------+---------+------+-------+


  1. delimiter //

  1. CREATE event once_day ON schedule every 1 day do
  2. REPLACE INTO to_schedule (SELECT skills.id_animal,magazine.changed,magazine.sum1,(magazine.changed*magazine.sum1) AS mult1 FROM skills,magazine ORDER BY skills.id_animal ASC);//

  1. delimiter ;


Żeby sprawdzić, czy masz eventa w bazie danych możesz napisać tak.

  1. SHOW events\G


Ten post edytował Neutral 18.09.2019, 10:31:38
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 3.10.2025 - 19:19