Кой колко песни е качил

roskata

Registered
Здравейте, трябва ми код кой колко песни е качил примерно 5 потребителя с най-много качени песни да изкарва. Мерси. :)
 
ами това ти е една заявка.


ако таблицата ти е upload, пишеш следната заявка

Код:
mysql_query("SELECT * FROM `upload` ORDER BY `upload_file` ASC  GROUP BY `user` LIMIT 0,5") or die ('ops');


в тоя случай заявката изпълнява

вземи всички полета от таблица `upload` и ги селектирай по най-много `upload_file` подредени по най-голям брой групирани по потребител `user` за 5 потребителя

или нещо от тоя сорт, тъй като не си дал нито таблица нито нищо, няма как да ти помогна повече
 
Ето таблицата на потребителите:

Код:
CREATE TABLE IF NOT EXISTS `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(12) NOT NULL,
  `password` varchar(255) NOT NULL,
  `date` varchar(255) NOT NULL,
  `lastactive` varchar(255) CHARACTER SET cp1250 NOT NULL,
  `timeonline` varchar(255) NOT NULL,
  `email` varchar(255) NOT NULL,
  `avatar` varchar(255) NOT NULL DEFAULT 'images/no_avatar.png',
  `skype` varchar(255) NOT NULL,
  `level` varchar(255) NOT NULL DEFAULT 'member',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=cp1251 AUTO_INCREMENT=114 ;

Ето на песните:


Код:
CREATE TABLE IF NOT EXISTS `songs` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `uploader` varchar(255) NOT NULL,
  `song` varchar(255) CHARACTER SET utf8 NOT NULL,
  `path` varchar(255) CHARACTER SET utf8 NOT NULL,
  `cat` varchar(255) CHARACTER SET utf8 NOT NULL,
  `views` int(11) NOT NULL,
  `downs` int(11) NOT NULL,
  `date` varchar(255) NOT NULL,
  `broken` varchar(255) NOT NULL DEFAULT '0',
  `dlink` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=cp1251 AUTO_INCREMENT=914 ;

Ако можеш целия код да ми дадеш, много ще съм благодарен. :P
 
$query = mysql_query("SELECT
COUNT(s.id) AS count
FROM
songs AS s
LEFT JOIN
users AS u ON u.id = s.uploader
WHERE
u.username = 'Replace'")or die(mysql_error());
echo "Replace е качил ". mysql_result($query,0,"count") . " песни.";
нещо такова, може би :?:
Като естествено, Replace предполагам ще ти бъде някаква променлива.
 
ами ако ибясниш, в кое поле какво се записва, в това на уплодерите, полето uploader какво записва, името на уплодъра или id-то от таблица users???


може би нещо от сорта изпълни тая заявка в mysql и виж какво ще ти изкара

само това в mysql

Код:
SELECT t1.`username` FROM `users` as t1 LEFT JOIN `songs` as t2 ON t1.`id`=t2.`uploader` ORDER BY `uploader` ASC GROUP BY `uploader`


а това е заявка за php
Код:
mysql_query("SELECT t1.`username` FROM `users` as t1 LEFT JOIN `songs` as t2 ON t1.`id`=t2.`uploader` ORDER BY `uploader` ASC GROUP BY `uploader`") or die ("ups");
 
embaka каза:
ами ако ибясниш, в кое поле какво се записва, в това на уплодерите, полето uploader какво записва, името на уплодъра или id-то от таблица users???

Uploader е името на usera. ID-то е песнета. :)
 
да, но това поле uploder трябва да е int, а не varchar, което ще рече, че трябва да записва id-то от таблица users, за дадения потребител, който е качил песента или там каквото е


значи горе съм ти написал заявката, но съм забравил да вади 5

Код:
mysql_query("SELECT t1.`username` FROM `users` as t1 LEFT JOIN `songs` as t2 ON t1.`id`=t2.`uploader` ORDER BY `uploader` ASC GROUP BY `uploader` LIMIT 0,5") or die ("ups");
 
Код:
SELECT t1.`username` FROM `users` as t1 LEFT JOIN `songs` as t2 ON t1.`id`=t2.`uploader` ORDER BY `uploader` ASC GROUP BY `uploader

дава ерор. :P

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'GROUP BY `uploader' at line 1
 
дава ерор щото си забравил една ` така като гледам

това го изпълняваш в mysql

Код:
SELECT t1.`username` FROM `users` as t1 LEFT JOIN `songs` as t2 ON t1.`id`=t2.`uploader` ORDER BY `uploader` ASC GROUP BY `uploader` LIMIT 0,5

ако тази заявка се изпълни в mysql, трябва да ти изведе 5 имена

виж прочети нагоре какво съм ти написал, това поле uploader трябва да е int и да записва id-то от таблица users, за да работи както трябва
 
embaka каза:
дава ерор щото си забравил една ` така като гледам

това го изпълняваш в mysql

Код:
SELECT t1.`username` FROM `users` as t1 LEFT JOIN `songs` as t2 ON t1.`id`=t2.`uploader` ORDER BY `uploader` ASC GROUP BY `uploader` LIMIT 0,5

ако тази заявка се изпълни в mysql, трябва да ти изведе 5 имена

отново същия ерор
 

Back
Горе