![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 63 Pomógł: 0 Dołączył: 29.03.2005 Ostrzeżenie: (10%) ![]() ![]() |
Witam!
Przeczytałam wszystkie posty i nie znalazłam nic podobnego. Otóż mam wyszukiwarkę, która wyszukuje wszystkie elementy z różnych tablic. W wynikach wyszukiwania pojawiają mi się domy z opisem i ceną, która to cena jest wyliczona cena min do cena max Cena min - to cena najmniejsza z ceny podstaowej a cena max to największa z ceny podstawowej i teraz mam problem jak sortować to w porządku cenowym - od najmniejszej do największej i wybierać możliwość sortowania. albo rosnąco albo malejąco - np. wciskając przycisk typu radio. prosze o pomoc |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
W formularzu robisz dwa pola radio:
A potem w php w zapytaniu dodajesz sortowanie na podstawie zaznaczonego radio:
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 63 Pomógł: 0 Dołączył: 29.03.2005 Ostrzeżenie: (10%) ![]() ![]() |
Dzieki bardzo, podobnie kombinowałam
ale jak zadeklarować tą cenę ? bo ta cena nie występuje w bazie danych |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Sama napisalas, że masz dane z różnych tablic a w wyniku wyszukiwania pojawiają ci się domy z opisem, ceną. Skąd ta cena? Z tabeli? jak tak to po sprawie
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 63 Pomógł: 0 Dołączył: 29.03.2005 Ostrzeżenie: (10%) ![]() ![]() |
Sorry za chaotyczność, pierwszy raz korzystam z forum.
Cena wyświetlona pod domem wyświetla mi taką kombinację Cena minimalna - do cena maxymalna gdzie cena min to min(cennik) a cena max to max (cennik) np. Domek typ BR 124 cena 1000 zł - 2000 zł sama sobie ułożyłam tą zmienną tak $cenaMax=mysql_fetch_array(sql("select max(cennik) from cennik where ....... |
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
To zrob alias. Założmy że chceszz sortować po maxymalnej cenie.:
select max(cennik) as maxcena .....ireszta. Następnie sortuj po tym aliasie: .... order by maxcena ... -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 63 Pomógł: 0 Dołączył: 29.03.2005 Ostrzeżenie: (10%) ![]() ![]() |
zrobiłam tak, ale wyszły mi jakieś błędy jak dopisuje to min
[Mixing of GROUP columns (MIN(),MAX(),COUNT()...) with no GROUP columns is illegal if there is no GROUP BY clause] |
|
|
![]()
Post
#8
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
no a dalas tam gdziesz group by? Mozesz pokazac to zapytanie?
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 63 Pomógł: 0 Dołączył: 29.03.2005 Ostrzeżenie: (10%) ![]() ![]() |
pewnie, że nie dałam
a zapytanie jest takie $zapytanie="select distinct domy.*,regiony.nazwa as region,max(cennik.cennik) as maxCena, from domy,cennik,regiony where "; |
|
|
![]()
Post
#10
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
no to daj groub by i potem pogadamy
![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 63 Pomógł: 0 Dołączył: 29.03.2005 Ostrzeżenie: (10%) ![]() ![]() |
Mistrzu, dałam w zapytaniu max(cennik) as maxCena itd
a później $zapytanie.=") group by domy.id order by maxCena ".$_POST["order"];//tu sortowanie i niestety nie sortuje po kolei dwa domy są dobrze, później źle |
|
|
![]()
Post
#12
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Mistrzu
![]() A w jaki sposób określasz max i min dla domu? na podstawie id? Domyslma się, że masz parę domków w bazie, które są identyczne i dla nich okreslasz min i max. W przykładzie wczesniej dalas cos takiego: Cytat np. Domek typ BR 124 cena 1000 zł - 2000 zł Czyli wyliczylas min i max dla domku typu BR 124. Ten typ to jakie pole w bazie? ID? A może pole typ? Bo grupowac musisz wlasnie po tym typie (czyli po tym co się powtarza dla domków). czyli wydaje mi się ze powinnaś dac group by typ a nie group by id. Zazwyczaj id jest unikalne dla kazdego rekordu. mam rację? Nie wiem jak jest u Ciebie. Jeśli się mylę, to przydałoby się trochę więcej informacji na temat tych twoich tabel i danych w nich -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 63 Pomógł: 0 Dołączył: 29.03.2005 Ostrzeżenie: (10%) ![]() ![]() |
Nie wiem jak mam Ci dziękować, że masz tyle cierpliwości...
Tabela domy zawiera pola - id, nazwa, opis itd. Typ jakiś tam jest nazwą ale jest to samo jak robię group by domy.nazwa |
|
|
![]()
Post
#14
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
hihi, cierpliwości mam tylko do 16. potem idę domciu
![]() 1) Ale czegoś tu nie rozumiem. PO czym grupowalaś na samym początku, że dostawalaś min i max domu? 2) distinct w selectie jest raczej nie potrzebny (chyba ze masz zle warunki nalozone) 3) podaj cale zapytanie (ze wszystkim:select,where,order,group by) nie obcinaj go. (chyba że to tajne ![]() 4) jesli mozesz podaj struktury tabel wraz z relacjami 5) podaj numer telefonu i przeslij zdjęcie .... ![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 63 Pomógł: 0 Dołączył: 29.03.2005 Ostrzeżenie: (10%) ![]() ![]() |
dobrze się składa, ja też pracuję do 16.00
a tak na powaznie: wcześniej robiłam order by domy.nazwa i pokazywało się: 1. Nazwa domu 2. Opis tego domu 3. Przedział cenowy a przedział cenowy robiłam tak: $cenaMin=mysql_fetch_array(sql("select min(cennik) from cennik where id_domu=".$dom["id"]." and cennik>1;")); $cenaMax=mysql_fetch_array(sql("select max(cennik) from cennik where id_domu=".$dom["id"]." and do7dni>1;")); if($cenaMin["min(cennik)"]>0) echo ($cenaMin["min(cennik)"]!=$cenaMax["max(cennik)"]) ? "od ".$cenaMin["min(cennik)"]." do ".$cenaMax["max(cennik)"]." <br>" : $cenaMin["min(cennik)"]." <br>"; elseif($cenaMax["max(cennik)"]>0) echo $cenaMax["max(cennik)"]." <br>"; własnie tu jest problem - że nie układa mi po tych cenach, tylko jakoś różnie |
|
|
![]()
Post
#16
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
To żeby było wszystko jasne (opiszę, jak mi się wydaje że robisz):
Najpierw pobierasz id domów. potem w pętli lecisz i dla każdego id wyliczasz min i max z tabeli cennik. jeśli tak robisz to tu faktycznie nie ma sortowania. Powiedz min najpierw czy dobrze napisalem. (a może masz gg? bedzie szybciej) -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 12:17 |