Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL]zliczenie rekordkow i wyswietlenie ich wedlug ilosci.
zerosix
post 27.07.2010, 15:29:19
Post #1





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 28.06.2010

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


Witam,
glowie sie nad pewnym zapytaniem.mam dwie tabelki:
fav
id idfav iduser
1 12 1
1 12 2
1 14 2

pierwszafaza
id linkdozdjecia idpictr
1 xxxx.jpg 12
2 yyyy.jpg 14

chcialbym posegregowac linkdozdjecia,idpictr wedlug ilosci zlicznonych idfav tzn
jesli link do zdjecia o idpictr=12 a w tabelce fav idfav o wartosci 12 wystepuje dwa razy to bedzie wyswietlane
przed tym gdzie 14 wystepuje tylko raz.Mam nadzieje ze wyrazilem sie w miare zrozumiale.Jak powinno wygladac takie zapytanie.?



pomoze ktos...? obszukalem juz chyba polowe googli i nie moge znalezc mojego problemu.
Go to the top of the page
+Quote Post
erix
post 27.07.2010, 15:35:35
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




GROUP BY + HAVING?

Tylko tyle da się z tego opisu zrozumieć.


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

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
smagul
post 27.07.2010, 15:46:00
Post #3





Grupa: Zarejestrowani
Postów: 81
Pomógł: 4
Dołączył: 17.02.2009

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


  1. SELECT `tab1`.`id`, `tab1`.`linkdozdjecia`, COUNT(`tab2`.`id`) AS 'ilosc' FROM `pierwszafaza` AS `tab1`
  2. LEFT JOIN `fav` AS `tab2` ON `tab1`.`idpictr` = `tab2`.`idfav`
  3. GROUP BY `tab1`.`id`
  4. ORDER BY `ilosc` DESC


Na szybko bez testów.

Tyle że i tak masz głupio zaprojektowaną bazę danych, bo skoro obrazek ma już swoje `id`, to po co mu drugie `idpictr`?
Go to the top of the page
+Quote Post
zerosix
post 28.07.2010, 12:23:05
Post #4





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 28.06.2010

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


sprobuje raz jeszcze:)
fav
id idfav iduser
1 12 1
1 12 2
1 14 2

pierwszafaza
id linkdozdjecia idpictr
1 xxxx.jpg 12
2 yyyy.jpg 14

chcialbym wyswietlic rekordy zwiekszajaco z tabelki pierwszafaza wedlug tego ile razy idpictr powtorzy sie w idfav np.12 w xxxx.jpg powtarza sie dwa razy wiec w petli while bedzie wyswietlone przed yyyy.jpg .


juz testuje

Niestety Twoj przyklad nie dziala ,a nie bardzo go rozumiem dlatego nie umiem sprawdzic czemu.Zwlaszcza czemu uzyles COUNT(`tab2`.`id`) a nasteonie FROM pierwszafaza.
Zmienilem strukture tabel jak radziles na :
pierwszafaza
id nazwa

fav:
id iduser favnr
gdybys byl tak mily albo ktokolwiek inny i poprawil to zapytanie?

z gory dzieki.

Ponawiam moja prosbe,Panowie zlitujcie sie:)
Go to the top of the page
+Quote Post
andrzejk
post 28.07.2010, 13:36:35
Post #5





Grupa: Zarejestrowani
Postów: 6
Pomógł: 2
Dołączył: 28.07.2010

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


  1. SELECT count( idfav ) AS ilosc, idfav, linkdozdjecia
  2. FROM fav
  3. JOIN pierwszafaza ON idfav = idpictr
  4. GROUP BY idfav
  5. ORDER BY ilosc DESC


otrzymasz kolumny - ilosc, idfav oraz nazwe-link zdjecia

o to chodziło questionmark.gif
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: 18.07.2025 - 05:44