Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Jak to posortować
KR2615
post
Post #1





Grupa: Zarejestrowani
Postów: 311
Pomógł: 13
Dołączył: 7.05.2007

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


Z okazji kumulacji Lotto zrobiłem sobie bazę z wszystkimi wynikami w historii Totalizatora Sportowego. Wyniki pobieram kwerendą:
  1. SELECT * FROM `wyniki` WHERE id = 6150

a w wyniku dostaję:
Kod
id     date     d1     d2     d3     d4     d5     d6
6150     2018-09-08     29     36     23     45     24     5

chciałbym cyfry d1 do d6 posortować w kolejności rosnącej. Da się to zrobić z poziomu SQL czy tylko PHP?
Go to the top of the page
+Quote Post
Pyton_000
post
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Da się ale twoje zapytanie będzie wyglądało jak pałac Putina. Sztuka dla sztuki.
Go to the top of the page
+Quote Post
KR2615
post
Post #3





Grupa: Zarejestrowani
Postów: 311
Pomógł: 13
Dołączył: 7.05.2007

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


Ok, To może ktoś podrzuci rozwiązanie w PHP?
Go to the top of the page
+Quote Post
Pyton_000
post
Post #4





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Pokaż swój kod. Ja chętnie pomogę a nie napiszę za Ciebie.
Go to the top of the page
+Quote Post
KR2615
post
Post #5





Grupa: Zarejestrowani
Postów: 311
Pomógł: 13
Dołączył: 7.05.2007

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


  1. $last = mysql_fetch_array(mysql_query("SELECT * FROM wyniki ORDER BY id DESC LIMIT 1"));
  2. $numbers = array();
  3. for($i=1;$i>=6;$i++) {
  4. $numbers[$i] = $last['d$i'];
  5. }
  6. sort($numbers);
  7. var_dump($numbers);

daje array(0) { }
Go to the top of the page
+Quote Post
Pyton_000
post
Post #6





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


jak już to $last["d$i"]
Go to the top of the page
+Quote Post
KR2615
post
Post #7





Grupa: Zarejestrowani
Postów: 311
Pomógł: 13
Dołączył: 7.05.2007

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


Niestety nadal array(0)
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 558
Pomógł: 6315
Dołączył: 27.12.2004




To moze sprawdz co zawiera $numbers przed sortowaniem... to dosc calkiem oczywisty krok :/

przenosze

I jak juz sprawdzisz, ze to numbers jest poprostu puste, to potem sie przyjrzyj temu
for($i=1;$i>=6;$i++) {
i zastanow czy ta petla ma w ogole prawo choc raz sie wykonac.
Go to the top of the page
+Quote Post
KR2615
post
Post #9





Grupa: Zarejestrowani
Postów: 311
Pomógł: 13
Dołączył: 7.05.2007

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


Sorry, chyba spałem jak to pisałem (IMG:style_emoticons/default/smile.gif) Zmieniłem warunek i udało się.

Przy okazji spytam też: chcę wybrać sześć liczb które padły najdawniej. Robię to taką kwerendą:
  1. SELECT * FROM liczby ORDER BY last ASC LIMIT 6

Struktura tabeli i przykładowe wyniki:
Kod
count    digit    last
747    11     2018-06-30
779    13     2018-07-12
691    12     2018-07-17
760    32     2018-07-28
717    49     2018-07-28
793    6     2018-08-04


Jak te sześć wyników ustawić również według liczby?

Ten post edytował KR2615 12.09.2018, 10:38:19
Go to the top of the page
+Quote Post
nospor
post
Post #10





Grupa: Moderatorzy
Postów: 36 558
Pomógł: 6315
Dołączył: 27.12.2004




Poprostu wstaw to zapytanie jako podzapytanie i posortuj w zapytaniu glownym po tej ilosci
Go to the top of the page
+Quote Post
KR2615
post
Post #11





Grupa: Zarejestrowani
Postów: 311
Pomógł: 13
Dołączył: 7.05.2007

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


A tak bardziej po ludzku?
Go to the top of the page
+Quote Post
nospor
post
Post #12





Grupa: Moderatorzy
Postów: 36 558
Pomógł: 6315
Dołączył: 27.12.2004




https://dev.mysql.com/doc/refman/8.0/en/derived-tables.html
Go to the top of the page
+Quote Post

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: 21.09.2025 - 21:05