Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Sortowanie czasu
piotrdd2
post 17.02.2010, 08:54:41
Post #1





Grupa: Zarejestrowani
Postów: 136
Pomógł: 2
Dołączył: 13.05.2003
Skąd: Przemyśl

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


Witam

Posiadam 2 tabele:

  1. CREATE TABLE `spis` (
  2. `id` int(11) NOT NULL,
  3. `nazwisko` text character SET utf8 collate utf8_unicode_ci NOT NULL,
  4. `rok` text character SET utf8 collate utf8_unicode_ci NOT NULL,
  5. `grupa` text character SET utf8 collate utf8_unicode_ci NOT NULL,
  6. `szkola` text character SET utf8 collate utf8_unicode_ci NOT NULL,
  7. PRIMARY KEY (`id`)
  8. ) ENGINE=MyISAM DEFAULT CHARSET=latin2;



  1. CREATE TABLE `cza` (
  2. `id` int(11) NOT NULL,
  3. `czas` text NOT NULL
  4. ) ENGINE=MyISAM DEFAULT CHARSET=latin2;



Zapytanie:
  1. SELECT spis.id, spis.nazwisko, cza.czas, spis.grupa, spis.szkola FROM `cza`, `spis`
  2. WHERE spis.id=cza.id ORDER BY `spis`.`grupa` ASC, `cza`.`czas` DESC



jak zrobić aby sortowało mi wg grupy, a następnie wg czasu?? a Czas jest podany w postaci np. 47,01 (47-s, 01-ms), 1,23,56(1-m,23-s,56-ms)

i kolejne pytanie, mam już taki mętlik w głowie że nie wiem jak do tego dojść:
w jaki sposób wyświetlić rekordy z tabeli "cza" które nie są powiązane z tabela "spis"
Go to the top of the page
+Quote Post
phpion
post 17.02.2010, 09:04:14
Post #2





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




1. Użyj normalnego typu danych czyli liczbowego. Wpisując wszędzie tekst skazujesz się na problemy przy sortowaniu i w zadawaniu warunków.
2. WHERE NOT EXISTS.
Go to the top of the page
+Quote Post
piotrdd2
post 17.02.2010, 19:00:06
Post #3





Grupa: Zarejestrowani
Postów: 136
Pomógł: 2
Dołączył: 13.05.2003
Skąd: Przemyśl

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


Cytat(phpion @ 17.02.2010, 10:04:14 ) *
1. Użyj normalnego typu danych czyli liczbowego. Wpisując wszędzie tekst skazujesz się na problemy przy sortowaniu i w zadawaniu warunków.



no okwszystko bedzie jeśli czas przyjmie formatu 34,21
a jesli bedzie wygladal tak: 1,34,21 (1 minuta, 34 sekundy, 21 milisekund)
Go to the top of the page
+Quote Post
Mchl
post 17.02.2010, 21:14:03
Post #4





Grupa: Zarejestrowani
Postów: 855
Pomógł: 145
Dołączył: 17.07.2008
Skąd: High Memory Area

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


Zapisuj ilość sekund.
1:34,21 = 94,21

Gwoli ścisłości. Minuta, 34 sekundy i 21 milisekund, to 94,021

Ten post edytował Mchl 17.02.2010, 21:14:44
Go to the top of the page
+Quote Post
piotrdd2
post 18.02.2010, 11:48:14
Post #5





Grupa: Zarejestrowani
Postów: 136
Pomógł: 2
Dołączył: 13.05.2003
Skąd: Przemyśl

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


ok problem rozwiązany.


kolejne pytanie:
  1. SELECT DISTINCT spis.szkola, spis.grupa, min(cza.milisek) FROM spis, cza WHERE spis.id=cza.id GROUP BY spis.szkola, spis.grupa



w obecnym przypadku wyświetla mi najlepsze czasy pogrupowane grupa&szkola

chciałbym aby dla danej szkoły wyświetlało mi maximum po 5 czasów w każdej grupie

było tak:
GIM I B1 29090
GIM I B2 32120
GIM I B3 30190
GIM I B4 33480
GIM II B1 11580
....

a chciałbym tak:

GIM I B1 29090
GIM I B1 .....
GIM I B1 ....
GIM I B1 .....
GIM I B1 ....
GIM I B2 32120
....

Ten post edytował piotrdd2 18.02.2010, 14:01:54
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: 24.07.2025 - 17:16