Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] Sortowanie
XvAK
post 24.10.2010, 13:29:58
Post #1





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 22.12.2009

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


Witam

Mam problem z sortowaniem, ponieważ musi się odbyć ono na zasadzie, że ORDER BY będzie obowiązywać dla wiersza z większą datą. Skrypt aktualnie wygląda tak (wycinek):

  1. $mysql->query("SELECT `WaznyDo1`,`Godzina1`,`WaznyDo2`,`Godzina2`,`WaznyDo3`,`Godzina3` FROM `sh_lista` ORDER BY `WaznyDo1`,`Godzina1` ASC;");
  2. while ($wiersz = mysql_fetch_array($result))
  3. {
  4. $waznydo1 = $wiersz[0];
  5. $godzina1 = $wiersz[1];
  6. $waznydo2 = $wiersz[2];
  7. $godzina2 = $wiersz[3];
  8. $waznydo3 = $wiersz[4];
  9. $godzina3 = $wiersz[5];
  10.  
  11. // dalsza część skryptu wyświetlająca dane w sposób mniej więcej taki:
  12.  
  13. if(!empty($waznydo1)) {echo "$waznydo1 $godzina1";}
  14. if(!empty($waznydo2)) {echo "$waznydo2 $godzina2";}
  15. if(!empty($waznydo3)) {echo "$waznydo3 $godzina3";}
  16. }


Wygląda to mniej więcej tak (na czerwono oddzieliłem 'wyniki działań 1 zapętlenia')


Zmienienie zapytania (końcówki) z ORDER BY `WaznyDo1`,`Godzina1` ASC; na ORDER BY `WaznyDo1`,`Godzina1`,`WaznyDo2`,`Godzina2`,`WaznyDo3`,`Godzina3` ASC; niewiele zmienia


Nie miałbym problemów z sortowaniem gdyby daty i godziny były w 1 tabeli, ale problem jest że są w 3 rożnych.

Najprostszym rozwiązaniem byłoby połączenie tych 3 kolumn i wtedy posortować ale lecz musza być one osobno więc to nie wypali.
Można je jakoś tymczasowo połączyć tylko na czas sortowania lub jakoś inaczej to rozwiązać?


Tak aby wynik wyglądał w ten sposób:


Z góry dzięki za pomoc.

Ten post edytował XvAK 24.10.2010, 13:31:01
Go to the top of the page
+Quote Post

Posty w temacie


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 - 20:03