Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Jak to posortować
KR2615
post 11.09.2018, 20:20:13
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 12.09.2018, 06:54:57
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 12.09.2018, 07:00:11
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 12.09.2018, 07:09:02
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 12.09.2018, 07:56:15
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 12.09.2018, 08:36:32
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 12.09.2018, 09:30:13
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 12.09.2018, 09:38:28
Post #8





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
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.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
KR2615
post 12.09.2018, 10:26:16
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 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 12.09.2018, 11:00:21
Post #10





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




Poprostu wstaw to zapytanie jako podzapytanie i posortuj w zapytaniu glownym po tej ilosci


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
KR2615
post 16.09.2018, 19:23:26
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 17.09.2018, 05:59:42
Post #12





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




https://dev.mysql.com/doc/refman/8.0/en/derived-tables.html


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 28.03.2024 - 18:33