shreker
13.12.2010, 18:42:54
Mam pytanie, czy da się sortować dane z bazy na podstwaie wiecej niz jednego pola. Mamy np. pola w tabeli: id, imie, nazwisko, kod, adres, ...
mam zapytanie obecne: select * from tabela order by nazwisko asc
a chciałbym żeby sortowanie odbywało się po nazwisku i imieniu.
Mephistofeles
13.12.2010, 18:45:44
ORDER BY nazwisko, imie ASC
shreker
13.12.2010, 18:51:09
próbowałem, niestety nie działa :-(
potreb
13.12.2010, 19:18:19
Jak nie działa, nie sortuje po nazwisku?
shreker
13.12.2010, 19:44:33
czytanie ze zrozumieniem: sortowanie na podstawie wiecej niz jednego pola
nospor
13.12.2010, 19:55:16
shrek ty sie nie oburzaj tylko sam czytaj ze zrozumieniem. To co dostales dziala. Kazdemu z nas dziala tylko tobie jednemu nagle nie...
moze źle skopiowales, moze dziala inaczej niz myszlisz.... podaj wiec laskawie swoj kod po zmianach, podaj dane, podaj jakiego sortowania oczekiwales a nie sie tu burzysz.
powtarzam: kod co dostales dziala.
shreker
13.12.2010, 20:16:58
całe zapytanie wygląda dokładnie tak: select * from tabela order by nazwisko, imie asc limit $startpoint,$perpage
jest to zapytanie w funkcji stronicującej. kiedy sortuje według naziska, albo imienia - działa bez problemów, natomiast kiedy to połączyłem to sortuje tylko według nazwiska. Co do burzenia się to nie burzę się, ale pytanie potreba zostało sformułowane jakby miało sortować po nazwisku, a nie sortowało, więc nie ma co się dziwić że napisałem o czytaniu ze zrozumieniem. Skoro jednak ma to działać a nie działa, to co może być powodem ?
nospor
13.12.2010, 20:20:30
Moze ty poprostu inaczej niz my rozumiesz "sortowanie po nazwisku i imieniu"

Powtarzam jeszcze raz. Pokaz dane po sortowaniu a nastepnie pokaz jakiego wyniku oczekiwales.
shreker
13.12.2010, 20:46:36
sortowanie rozumiem tak:
przed sortowaniem:
(nazwisko, imie)
b, a
c, d
a, b
d, c
obecnie mam tak:
a, b
b, a
c, d
d, c
a ma być:
a, a
b, b
c, c
d, d
proste ? co w tym niezrozumiałego ?
nospor
13.12.2010, 20:52:10
Cytat
proste ? co w tym niezrozumiałego ?
No widzisz, znowu sie burzysz i znowu bez powodu. Tak, to jest proste. ALe niestety to ty nie rozumiesz na czym polega sortowanie po dwóch polach. Tak wiec sie nie burz na przyszlosc tylko sie doksztalc

sortowanie po dwoch polach polega na tym, ze gdy pierwsze pole bedzie kilka takich samych wartosci, to wowczas te rekordy zostana posortowane po drugim polu. Czyli u Ciebie wynik jest jak najbardziej prawidlowy. A ze ty sortowanie rozumiesz zupelnie inaczej to juz inna bajka

Cytat
a ma być:
a, a
b, b
c, c
d, d
Jakim cudem ci to w ogole moglo przyjsc do glowy? Przeciez przy takim sortowaniu kolumny mają wartosci z roznych rekordow. A zapytanie select nie miesza wartosci rekordow, tylko rekord traktuje jako rekord a nie mieszanke kilku
shreker
13.12.2010, 21:49:40
nie do końca nospor. dla przykładu: masz:
1. kowalski jan
2. kowalski zbigniew
3. kowalski adam
Jak według ciebie powinno być to posortowane, bo według mnie w kolejności: 3, 1, 2. Chyba że jest inne sortowanie.
nospor
13.12.2010, 21:53:10
Cytat
, bo według mnie w kolejności: 3, 1, 2.
Dokladnie w takiej. Cieszę się, ze wkoncu zalapales, bo to co pokazales w poprzednim poscie to bylo dalekie od "zalapania"
shreker
13.12.2010, 22:07:52
nospor, ale mi od samego początku o to właśnie chodziło. Tylko dalej nic z tego nie wynika. Skoro zapytanie jest dobre, to co może być powodem że dane są sortowane tylko według nazwiska?
nospor
13.12.2010, 22:13:06
Cytat
ale mi od samego początku o to właśnie chodziło.
NIe, w tym poscie:
Cytat
sortowanie rozumiem tak:
przed sortowaniem:
(nazwisko, imie)
b, a
c, d
a, b
d, c
obecnie mam tak:
a, b
b, a
c, d
d, c
a ma być:
a, a
b, b
c, c
d, d
Przedstawiles ZUPELNIE inna idee sortowania.
Pokaz wiec jeszcze raz wszystkie dane, nie zadne a b c d tylko poprawne dane, gdzie sa inne nazwiska a nie tylko kowalski, bo podejrzewam ze jednak nadal masz na mysli inne sortowanie

No dobra, a dla takich danych w jakiej kolejnosci baza zwraca ci dane
1. kowalski jan
2. kowalski zbigniew
3. kowalski adam
4. awangarda zbigniew
? Bo ustalilismy ze powinna zwracac tak:
awangarda zbigniew
kowalski adam
kowalski jan
kowalski zbigniew
A tobie jak zwraca?
shreker
13.12.2010, 22:26:30
zwraca w kolejnosci: 4, 1, 2, 3. czyli według samego nazwiska, jeżeli dam według imienia to będzie według imienia, ale w połączeniu sortuje tylko według nazwiska. nie mam pojęci już co może być powodem ?
nospor
13.12.2010, 22:29:25
Pokaz zrzut ekranu z PMA bo ci normalnie nie wierze

Tylko taki zrzut, zeby bylo widac wprowadzone zapytanie

ps: bo sprawdzales to w PMA? Bo jesli opierasz sie tylko na swoim skrypcie php, to prawdopodobnie gdzies sie jarbnąłeś.
shreker
13.12.2010, 22:33:35
zapytanie jest na pewno ok, bo próbowałem na innej tabeli, z innymi danymi i hula. a na tej dupa. Jak namierzyc gdzie tkwi błąd !?!?!
cały skrypt pisałem sam, i podejrzewam że coś jest walnięte w skrypcie, tylko jak to najprościej namierzyć, CO

przedtem stronicowanie miałem oparte o starą wersję twego stronicowania, to zechciało mi się kombinacji i pisania swego stronicowania, szlag by to trafił

!!!
nospor
13.12.2010, 22:34:01
to zacznijmy od podstaw:
1)
Temat: Jak poprawnie zada pytanie2) jak sie zastosujesz do pierwszego, to pokaz kod. A potem pokaz dokladnie co ci zwrocil twoj skrypt. Nie zadne przykladowe dane, tylko dokladnie.
shreker
13.12.2010, 22:37:32
posiedzę jeszcze poszukam może dojdę, w czym problem, pewnie jakaś pierdoła, tylko od czego zacząć ...
nospor
13.12.2010, 22:39:04
Cytat
tylko od czego zacząć ...
Przeciez w poprzednim poscie podalem ci dwa punkty. Od nich masz zaczac....Twoje slowa:
Cytat
czytanie ze zrozumieniem:
kaem
14.12.2010, 13:24:46
@nospor, podziwiam Twoją cierpliwość

@shreker - dałeś taki przykład:
Cytat
przed sortowaniem:
(nazwisko, imie)
b, a
c, d
a, b
d, c
obecnie mam tak:
a, b
b, a
c, d
d, c
a ma być:
a, a
b, b
c, c
d, d
Jak ma być w wyniku np. a, a skoro przed sortowanie nie ma takiego rekordu!? Tak jak napisano wcześniej, może inaczej rozumiesz te sortowanie albo chcesz zrobić coś zupełnie innego. Fajnie by było jak byś
jasno wytłumaczył co chcesz osiągnąć i podał jakieś przykłady danych, na których pracujesz.
szmerak
14.12.2010, 13:42:42
Ja również nie rozumiem o co mu chodzi.
Hmm z tego co napisałeś wynika że
//Przykład pracowników w bazie danych
Zubrzycki Józef
Kowalski Adam
Lauko Krzysztof
Nowacki Adam
//Sortuje ci tak
Kowalski Adam
Lauko Krzysztof
Nowacki Adam
Zubrzycki Józef
//w 100% te sortowanie jest wykonane dobrze i to jest także w 100% odpowiedź na twoje pytanie.
//ty napisałeś że ma być tak
Kowalski Adam
Lauko Adam
Nowacki Józef
Zubrzycki Krzysztof
Tak więc na tym przykładzie mogę ci pokazać błąd twojego rozumowania.
więc chciał byś pójść do pracy w której główna baza danych jest sortowana na twojej zasadzie? (p.s oczywiscie jest to nonsens) Myśle że wypłaty byś się nie doczekał.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.