

![]() |
![]() |
|
|||||||
![]() |
![]() |
| tworzenie stron koncepcje, (x)html, css, php, cgi, js, inne technologie |
|
|
|
LinkBack | Narzędzia wątku | Przeszukaj ten temat | Wygląd |
![]() |
![]() |
|
|||
|
Prośba o skrypt sortujący tablice po wybranym indeksie zagnieżdżonej tablicy.
Tzn. tablica wyników z zapytania sql np. $wiersz[0] {data=>2008-04-02, czas=>jakis czas, tytul=> jakis tytul, cena => 0.45} No i mam sobie taka tablice (150 indeksow) i teraz chce posortowac cala tablice tylko po cenie albo tylko po tytule. Nie moge tego zrobic podczas zapytania w sql bo wydobywam rekordy po dacie tzn wszystkie z data 2008-04-02 wszystkie z 2008-04-03 itd. (no chyba ze istnieje w sql cos takiego jak od daty do daty) |
![]() |
![]() |
![]() |
![]() |
|
|||
|
Przeniosłem post do nowego tematu i nadałem mu mam nadzieje słuszną nazwę :P
No a teraz przechodząc do rzeczy, nie napisałeś jaka to jest baza, ale ogólny język SQL jest taki sam :P Nie prawda, że nie możesz posortować danych już podczas zapytania, bo wydobywasz po czymś. Proste zapytanie, Kod:
"SELECT * FROM tytuly WHERE data = '2008-04-02' ORDER BY cena ASC; " Mając takie coś można przygotować bardzo prosty kawałek skryptu odpowiedzialny za sortowanie ( na pewno widziałeś dane w tabelce które po kliknięciu na nagłówek tabelki sortują się rosnąco lub malejąco ) w bardzo prosty sposób po wszystkich możliwych danych ![]() Co do wyciągnięcia czegoś z zakresu to w wypadku daty może być to mały problem, ale to chyba też zależy od rodzaju tego pola. Jeśli chcesz coś z przedziału i jest to liczba wrobisz Kod:
... WHERE cena >= 5 AND cena <= 100 ... jednak z datą jest trochę inaczej, bo w zależności od pola data jest datą albo ciągiem znaków, jeśli pole jest timestamp to może wyjść powyższy przykład, jeśli jest natomiast varchar może być już gorzej, ale osobiście nie pamiętam jak to było. Ja korzystam wszędzie z czasu uniksowego więc o ile o tyle ten problem mnie nie dotyczy, bo zawsze jest to liczba. PS. Nie chce Cię przekonywać, że taki format czasu jak czas w sekundach ( uniksowy ) jest lepszy pod każdym względem, ale warto rozważyć takie coś, w Twojej strukturze tabeli widzę że musisz 'poświęcić' 18 znaków łącznie w 2 polach na zapis daty i czasu, zapisując to w sekundach jak na razie potrzebujesz tylko 11 znaków na zapis daty i czasu. Do tego formatowanie takiego czasu jest dużo prostsze, bo co jeśli nagle będziesz miał takie widzimisie i będziesz chciał format: "12:34 2 kwietnia 2008", z czasem nie będzie problemu, ale data już zupełnie inaczej wygląda, musisz ją 'pociąć' zamienić miesiąc na nazwę date( "{format zapisu daty/czasu}", {czas uniksowy} ); |
![]() |
![]() |
![]() |
![]() |
|
|||
|
Milo, że przeniosłeś i odpowiedziałeś. Chodziło o MySQL.
Problem jednak się sam rozwiązał. A był taki, że wcześniej nie działały mi takie zapytania jak between i przez to zamiast wydobyć wszystkie rekordy od daty do daty już posortowane (bo wiem, że można sortować w sql'u ;] nie róbmy z ludzi zielonych ) to musiałem wyciągać rekordy na każdą jedną date przez foreach albo inną pętle przez co dostawałem "paczki" posortowanych wyników. Tak samo jak wcześniej robiłem zapytania typu where tytul like %kot% and tytul like %czarny% tez mie niedzialaly przez co mialem utrudnione zadanie bo dodatkowe and'y musialem robic bezposrednio w php. No nic mozna watek zamknac bo jak pisałem problem rozwiązany - nie wiem jak ale to nie jest ważne.Może dodatkowo napisze jak takie zapytanie ma wyglądać (a nuż się komuś przyda): Kod:
SELECT * FROM tabela where (data BETWEEN '2008-04-02' AND '2008-05-02') WHERE tytul like '%kot%' AND tytul NOT LIKE '%czarny%' ORDER BY kolumna,kolumna2 DESC; Cytat:
Ostatnio edytowane przez Golaod ; 28.04.2008 o 12:12. |
![]() |
![]() |
|
| Narzędzia wątku | Przeszukaj ten temat |
| Wygląd | |
|
|
Podobne wątki
|
||||
| Temat | Autor wątku | Forum | Odpowiedzi | Ostatni post/autor |
| [PHP][MySQL] Sesja i baza danych | arti22black | tworzenie stron | 1 | 03.03.2008 16:41 |
| [PHP] wyciągnięcie danych z innej strony | zhornik | tworzenie stron | 2 | 01.03.2008 21:47 |
| [PHP/MySQL] Pobieranie danych i wyswietlanie | na.ripe | tworzenie stron | 2 | 31.08.2007 12:42 |
| [Pascal] Baza danych oparta na tablicy rekordów | Ketashi | programowanie | 1 | 06.06.2007 19:41 |
| [php-fusion][mysql][php] Brak połączenia z bazą danych | grzech1991 | tworzenie stron | 13 | 01.01.2007 17:34 |
| Wszystkie czasy w strefie GMT +2. Teraz jest 04:54. |

