Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]select
Ruch Radzionków
post 6.12.2011, 23:42:19
Post #1





Grupa: Zarejestrowani
Postów: 311
Pomógł: 25
Dołączył: 29.08.2011

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


witam szukałem w google i tutaj na forum ale nie znalazłem. Mam taki problem mam otóż taki kod:
  1. $baza = mysql_query("SELECT * FROM test ORDER BY status");

i chodzi mi o to żeby gdy będzie status='1' to będzie na samym początku a gdy status='0' to bedzie się wyświetlał w różnych miejscach nie za pomocą np. id:
przykład

|4|nazwa|1|
|16|nazwa|1|
|27|nazwa|0|
|3|nazwa|0|
|15|nazwa|0|
|1|nazwa|0|
|16|nazwa|0|
|17|nazwa|0|
|37|nazwa|0|

nie wiem jak to zrobic pomoże mi ktoś


--------------------
Pomogłem daj pomógł
Go to the top of the page
+Quote Post
by_ikar
post 6.12.2011, 23:57:22
Post #2





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

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


No ale przecież zapytanie które pokazałeś spełnia moim zdaniem warunki których oczekujesz. Chyba że niezbyt jasno się wyraziłeś, lub ja ciebie źle zrozumiałem.
Go to the top of the page
+Quote Post
CuteOne
post 7.12.2011, 02:38:08
Post #3





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


"ORDER BY status DESC"

google -> mysql order by
Go to the top of the page
+Quote Post
Ruch Radzionków
post 7.12.2011, 07:27:13
Post #4





Grupa: Zarejestrowani
Postów: 311
Pomógł: 25
Dołączył: 29.08.2011

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


desc tez juz mam tylko tu nie dopisałem w sql mam tak

  1. CREATE TABLE `test` (
  2. `id` float NOT NULL AUTO_INCREMENT,
  3. `nazwa` varchar(222) NOT NULL,
  4. `status` varchar(222) NOT NULL,
  5. PRIMARY KEY (`id`)
  6. );


i wyświetla na początku status większy ale chodzi mi o reszte potem jest po kolei id


--------------------
Pomogłem daj pomógł
Go to the top of the page
+Quote Post
nospor
post 7.12.2011, 07:30:22
Post #5





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




http://nospor.pl/mysql-faq.html#faq-5

ps:
`id` float NOT NULL AUTO_INCREMENT,
no żeby float autoincrement robic to pierwszy raz takie cuda widze wink.gif

ps2:
`status` varchar(222) NOT NULL,
czemu robisz varchar ze status, skoro to 1 lub 0? Pisz optymalnie.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
synec
post 7.12.2011, 10:22:27
Post #6





Grupa: Zarejestrowani
Postów: 14
Pomógł: 2
Dołączył: 26.10.2009

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


Cytat(Ruch Radzionków @ 7.12.2011, 07:27:13 ) *
desc tez juz mam tylko tu nie dopisałem w sql mam tak

  1. CREATE TABLE `test` (
  2. `id` float NOT NULL AUTO_INCREMENT,
  3. `nazwa` varchar(222) NOT NULL,
  4. `status` varchar(222) NOT NULL,
  5. PRIMARY KEY (`id`)
  6. );


i wyświetla na początku status większy ale chodzi mi o reszte potem jest po kolei id

To jak DESC już masz to jeszcze typ danych dla id daj INT(x) a dla status INT(1) za tego x wstaw liczbę.

Ten post edytował synec 7.12.2011, 10:23:37
Go to the top of the page
+Quote Post
nospor
post 7.12.2011, 10:23:28
Post #7





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
) a dla status INT(1)
jesli to są 1 i 0 to ma tam być tinyint a nie INT


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Ruch Radzionków
post 7.12.2011, 18:24:47
Post #8





Grupa: Zarejestrowani
Postów: 311
Pomógł: 25
Dołączył: 29.08.2011

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


dalej wyświetla po kolei


--------------------
Pomogłem daj pomógł
Go to the top of the page
+Quote Post
-osc-
post 7.12.2011, 20:40:04
Post #9





Goście







To może napisz łaskawco jakiego kodu uzyles bo pewnie zlego
Go to the top of the page
+Quote Post
Ruch Radzionków
post 7.12.2011, 22:08:40
Post #10





Grupa: Zarejestrowani
Postów: 311
Pomógł: 25
Dołączył: 29.08.2011

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


o co ci chodzi jakiego kodu


--------------------
Pomogłem daj pomógł
Go to the top of the page
+Quote Post
nospor
post 8.12.2011, 07:55:05
Post #11





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Zapewne chodzi mu o kod, który ci nie dziala....
Dostałeś ode mnie linka
http://nospor.pl/mysql-faq.html#faq-5
zastosowałeś się do niego? Ten link rozwiązuje Twój problem


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Ruch Radzionków
post 8.12.2011, 23:22:24
Post #12





Grupa: Zarejestrowani
Postów: 311
Pomógł: 25
Dołączył: 29.08.2011

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


Cytat(nospor @ 8.12.2011, 07:55:05 ) *
Zapewne chodzi mu o kod, który ci nie dziala....
Dostałeś ode mnie linka
http://nospor.pl/mysql-faq.html#faq-5
zastosowałeś się do niego? Ten link rozwiązuje Twój problem

zastosowałem dałem tak
  1. SELECT * FROM tabela ORDER BY pole=1 DESC, pole=2 ASC

zmieniłem też na init i nic dalej tak samo


--------------------
Pomogłem daj pomógł
Go to the top of the page
+Quote Post
Niktoś
post 9.12.2011, 00:53:32
Post #13





Grupa: Zarejestrowani
Postów: 1 195
Pomógł: 109
Dołączył: 3.11.2011

Ostrzeżenie: (10%)
X----


Może tak?

  1. SELECT * FROM tabela ORDER BY ID=1 ASC ,ID=0 DESC, STATUS DESC


Już chyba bardziej przefiltrować tego nie można

Ten post edytował Niktoś 9.12.2011, 01:11:08
Go to the top of the page
+Quote Post
nospor
post 9.12.2011, 07:08:46
Post #14





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Kolejny przykład: chcemy posortować pola tak, by najpierw pojawił się rekord o zadanej wartości pola (np. 1), a potem rekordy posortowane rosnąco według innego pola
1
select * from tabela order by pole=1 desc, pole2 asc

Drugiemu polu już nie określa się wartości. Przecież status chciałeś tylko dla 1 mieć na gorze, reszta miała chyba już leciesz z sosrtowaniem po innym polu


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Ruch Radzionków
post 9.12.2011, 12:35:58
Post #15





Grupa: Zarejestrowani
Postów: 311
Pomógł: 25
Dołączył: 29.08.2011

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


reszta miała nie leciec po innym polu tylko w tym samym żeby się mieszała ta druga czesc


--------------------
Pomogłem daj pomógł
Go to the top of the page
+Quote Post
nospor
post 9.12.2011, 13:10:32
Post #16





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Nie kumam.... to status =1 ma byc na górze a reszta obojętnie? No to:
select * from tabela order by pole=1 desc


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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: 14.08.2025 - 13:09