Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> zapytanie o uzytkownika, ktory ma..., najwyzsza srednia glosow.
mop506
post
Post #1





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 23.01.2003

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


tutaj sa zapisywane glosy na kazdego z uzytkownikow:
  1. CREATE TABLE `Votes` (
  2. `Member` bigint(8) NOT NULL DEFAULT '0',
  3. `Mark` int(11) NOT NULL DEFAULT '0',
  4. `IP` varchar(18) NOT NULL DEFAULT '',
  5. `Date` date NOT NULL DEFAULT '0000-00-00',
  6. UNIQUE KEY `Member` (`Member`,`IP`,`Date`),
  7. KEY `Member_2` (`Member`)

tutaj przechowywane ich dane (fragment):
  1. DROP TABLE IF EXISTS `Profiles`;
  2. CREATE TABLE `Profiles` (
  3. `ID` bigint(8) UNSIGNED NOT NULL AUTO_INCREMENT,
  4. `NickName` varchar(48) NOT NULL DEFAULT '',
  5. ......
  6. `Pic_0_addon` varchar(32) NOT NULL DEFAULT '',
  7. `Status` enum('Unconfirmed','Approval','Active','Rejected','Suspended','NonTested') NOT NULL DEFAULT 'Unconfirmed',
  8. PRIMARY KEY (`ID`),
  9. UNIQUE KEY `NickName` (`NickName`),
  10. KEY `Status` (`Status`)

kod odpowiedzialny za sprawdzanie ktory z uzytkownikow ma najwieksza srednia glosow jest taki:
  1. SELECT Headline, NickName, Member, COUNT(*) AS `count`, SUM(Mark)/COUNT(*) AS mark, ID, Pic_0_addon
  2. FROM `Votes` INNER JOIN Profiles ON (ID = Member) WHERE STATUS = 'Active' AND TO_DAYS(NOW()) - TO_DAYS(`Date`) <= 7 GROUP BY Member HAVING `count` > 0 ORDER BY Mark DESC LIMIT 1

niestety nie dziala on prawidlowo. podam przyklad; na pana A oddano 3 glosy; 5,5,4 (wiadomo srednia 4.6...) a na pania B oddano jeden tylko glos; 5. zapytanie SQL zwraca pania B. chcialbym by zwracalo osobe, na ktora minimum oddano 5 glosow. myslalem, ze odpowiedzialny jest za to fragment
  1. ... HAVING `count` > 0 ....

niestety to nie to i nic nie pomoglo. ma ktos pomysl jak powinno prawidlowo brzmiec takie zapytanie?

*ps. chodzi oczywiscie o najlepszego uzytkownika z ostatniego tygodnia*

Ten post edytował mop506 26.07.2005, 17:27:09
Go to the top of the page
+Quote Post

Posty w temacie


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 Aktualny czas: 20.08.2025 - 06:27