![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 361 Pomógł: 12 Dołączył: 9.01.2010 Ostrzeżenie: (10%) ![]() ![]() |
Witam.
Na samym początku przepraszam że powielam temat ale bardzo zależy mi na posortowaniu wyników od największej do najmniejszej wartości. Oto kawałek kodu
Proszę o pomoc. Ten post edytował woxala123 1.10.2017, 20:00:11 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 879 Pomógł: 230 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem co Ty chcesz osiągnąć, przynajmniej podałbyś przykładowe dane jakie tam wpisujesz, ale patrząc na to co przedstawiłeś.
Czy nie wystarczy Ci aby dać do zapytania SQL: ORDER BY `pocet` DESC |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 361 Pomógł: 12 Dołączył: 9.01.2010 Ostrzeżenie: (10%) ![]() ![]() |
Nie za bardzo bo kod jest taki i nie za bardzo można by tu grupować.
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 879 Pomógł: 230 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) ![]() ![]() |
Nie widzę związku.
Skoro wypada CI więcej niż 1 rząd, to spokojnie możesz użyć sortowania. Ale patrząc na tabelę to po prostu powinna być lepiej skonstruowana. np.: id . cislo . value .. datum 1 ... 2 .... 345 .... 2017-10-01 2 ... 3 .... 456 .... 2017-10-01 3 ... 14 .... 567 .... 2017-10-01 SELECT cislo, value FROM `tah1` WHERE cislo = $i AND (datum BETWEEN '$a' and '$b') |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 361 Pomógł: 12 Dołączył: 9.01.2010 Ostrzeżenie: (10%) ![]() ![]() |
Ale jak zauważyłeś zmienna $i oblicza ilość występowania pojedyńczych liczb w 20 kolumnach potem to wszystko po selectie się sumuje i wyświetla liczby od 1-80 ile razy występowała. I te ile razy występowała chcę posortować od najwyższej do najniższej. I to wszystko. Tu jeszcze w tym skrypcie chcę zrobić coś takiego by obliczał pary liczb. Czyli w 20 kolumnach jest 190 kombinacji par na jedno losowanie i chce by wszystkie pary zliczał z wszystkich losowań lub wybranych.
Pozdrawiam |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 1 879 Pomógł: 230 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) ![]() ![]() |
Nie bardzo rozumiem, ale wystarczyłoby wtedy tak zrobić:
Kod SELECT count(1) pocet, datum FROM `tah1` WHERE (datum BETWEEN '$a' and '$b') GROUP BY `cislo` ORDER BY `pocet`; |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 361 Pomógł: 12 Dołączył: 9.01.2010 Ostrzeżenie: (10%) ![]() ![]() |
Ale jak zauważyłes jest 20 kolumn cislo1 do cislo20, to jak on ma zliczać wszystkie kolumny?
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 821 Pomógł: 111 Dołączył: 11.09.2006 Skąd: Biała Podlaska Ostrzeżenie: (0%) ![]() ![]() |
Jak masz cislo1 - cislo20 to masz prawdopodobnie źle zaprojektowaną bazę danych.
-------------------- |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 361 Pomógł: 12 Dołączył: 9.01.2010 Ostrzeżenie: (10%) ![]() ![]() |
Powyższy skrypt zlicza mi wszystkie liczbyod 1-80 i pokazuje ile dana liczba razy występuje. Tylko chcę te ilość posortować.
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 129 Pomógł: 13 Dołączył: 29.03.2012 Ostrzeżenie: (0%) ![]() ![]() |
Możesz to zrobić zapisując pobrane z bazy wartości do tablicy asocjacyjnej a później te wartości w tablicy zwiększać czyli:
tworzysz taką tablicę:
Następnie w pętli for 1 do 81 wstawiasz pętlę while. W pętli while robisz sumowanie w taki sposób: suma = klucz z pierwszej komórki + wynik zapytania MySQL Dalej w pętli while wstawiasz wynik sumowania do tablicy asocjacyjnej odwołując się do nazwy komórki Później za pętlami for i while sortujesz tablicę funkcją asort() i wywołujesz tablicę kolejną pętlą while z posortowanymi danymi. Powinno to wyglądać tak: Link |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 361 Pomógł: 12 Dołączył: 9.01.2010 Ostrzeżenie: (10%) ![]() ![]() |
Dzięki na razie. Jutro będę to pisał i zobacze jaki efekt to przyniesie. Pomysł w miarę dobry. Ale czy potem idzie to jakoś rozpisać na pary liczb występowań.?
Pozdrawiam |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 129 Pomógł: 13 Dołączył: 29.03.2012 Ostrzeżenie: (0%) ![]() ![]() |
Chodzi tobie o statystyki? ile razy wystąpiła 1,2,3,4 itd?
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 361 Pomógł: 12 Dołączył: 9.01.2010 Ostrzeżenie: (10%) ![]() ![]() |
tak chodzi mi o statystyki ale na razie mój skrypt oblicza pojedyńcze liczby a chcę też obliczać parki, trójki itp.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 02:19 |