![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 135 Pomógł: 0 Dołączył: 21.09.2005 Ostrzeżenie: (10%) ![]() ![]() |
Witam, problem pewnie dla wielu wyda się głupi, jednak nie mogę sobie z tym poradzić
![]() Otóż mam stronkę z dzwonkami, gdzie segreguje je alfabetycznie według tytułu, więc id nie są liczone kolejno jeden za drugim. Chciałbym zrobić kolumnę z LP. Drugim problemem jest to, że dzwonki te dziele po 20 sztuk na stronę, więc na kolejnych stronach liczba porządkowa musiała by być większa niż na stronie pierwszej. Moje zapytanie wygląda następująco:
moja tabela mp3 ma taką strukturę: Kod id kategoria tytul dzwonek Przeszukałem wiele stron w celu znalezienia rozwiązania mojego problemu, jednak nie znalazłem za wiele. Nie wiem, czy do liczby porządkowej mam zrobić kolejną kolumne w bazie danych (bo przecież skoro są alfabetycznie, to kolejność będzie się zmieniała). Na stronie nospora znalazłem coś takiego: Cytat 6) Numerowanie wierszy Wyciągamy rekordy z tabeli w jakiejś tam kolejności, z jakimiś tam warunkami. Chcemy dodatkowo dla każdego rekordu przypisać numer porządkowy dla tego "wyciągania". 1 2 set @i=0; select @i:=@i+1 nr, jakiesinnepola from tabela; Kolumna nr zawierać będzie numer porządkowy danego wiersza. Jednak nie do końca wiem, jak dodać to do mojego zapytania, by działało to dobrze... Właściwe rozwiązanie znajduje się pewnie na http://algorytmy.pl/?id=1697, ale chyba nie ma już płatności SMS, a 45zł za jedno sortowanie to trochę przesadzona cena.. Z góry dziękuje za wszelką pomoc i odpowiedzi ![]() |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 748 Pomógł: 388 Dołączył: 21.08.2009 Skąd: Gdynia Ostrzeżenie: (0%) ![]() ![]() |
a po co Ci ta liczba porządkowa?
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 135 Pomógł: 0 Dołączył: 21.09.2005 Ostrzeżenie: (10%) ![]() ![]() |
by było to posegregowane ;D BTW. jest jakiś sposób na szybką zmianę sortowania z ORDER BY tytul ASC na ORDER BY id DESC przy użyciu formularza? Tak jak np. na forach jest sortowanie według daty/nazwy w formularzu.
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 748 Pomógł: 388 Dołączył: 21.08.2009 Skąd: Gdynia Ostrzeżenie: (0%) ![]() ![]() |
no tak, ale przecież masz już segregacje alfabetyczną a jak wprowadzisz kolumnę z liczbą porządkową to będzie trzeba ją aktualizować przy każdym dodaniu nowego rekordu.
Jeżeli chcesz zmieniać sortowanie to przekaż dodatkową zmienną np. $sort potem sprawdzasz jaką ma wartość np.
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
A po ID nie wystarczy posegregować? Nie ma sensu dodawać liczby porządkowej, jeśli nie potrzebujemy ręcznie zmieniać kolejności poszczególnych pozycji - a taka potrzeba zachodzi na stronach www bardzo rzadko, zazwyczaj używa się jej w menu (choć wyświetlanie alfabetyczne czy wg kolejności dodania także nie jest złe). Nie wyobrażam sobie, żeby ktoś ustawiał położenie każdego dzwonka... I pamiętaj, że komplikuje to usuwanie (trzeba ponumerować od nowa).
A co do sortowania wg formularza to prosto, robisz zwykły select: , następnie odbierasz z niego wartość, walidujesz ją i wstawiasz do zapytania jak nazwę tabeli, po której ma sortować:
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 135 Pomógł: 0 Dołączył: 21.09.2005 Ostrzeżenie: (10%) ![]() ![]() |
dzięki wielkie chłopaki, nie bardzo wiedziałem jak zrobić to ze zmienną przesyłaną POST'em, więc zamieniłem go na GET i wszystko działa, wystarczy że w adresie przekazuje dodatkowe "&sort=by_id", reszta od tehaha działa jak trzeba
![]() Edit: Już sobie poradziłem z POST'em, wystarczyło: Jednak aby to działało na kolejnych stronach lepiej chyba będzie GET'em ![]() Ten post edytował szymek001 12.05.2010, 15:42:03 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 86 Pomógł: 16 Dołączył: 2.12.2009 Skąd: Płock/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
jeżeli ta liczba - w sensie numer porządkowy- jest ci potrzeba tylko i wyłącznie do wyświetlenie na stronie to zakładając, że wyświetlasz "forem" masz:
Ten post edytował exood 12.05.2010, 15:30:28 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 27.04.2025 - 05:24 |