SELECT blogname,count(postid) AS p FROM posts GROUP BY blogname ORDER BY p
ممنون از همه دوستان.کد بالا کار نکرد.
البته كه راههاي بيشماري هست ولي به نظر من معقولش اين هست كه شما يك جدول براي شمارش تعداد پست ها داشته باشيد براي مثال وبلاگ ali تعداد پست هاش n تا هست و در هر نوبت درج پست و حذف يك مقدار به است فيلد كم يا زياد كن.
درسته بهترین راه همینه ولی دیگه کار از کار گذشته.تعداد کاربرا خیلی زیاده و اگه این کارو بکنم کاربرای قبلی پستشون صفر نشون داده میشه.
فکر کنم با دستور max در mysql بشود همچین کاری کرد:
اولش خودم با همین روشی که شما میگید کار میکردم ولی رکورد رو اشتباه نشون میداد:
SELECT *, MAX(weblog) FROM posts group by weblog order by weblog desc limit 5
ساختار جدول posts به این صورته:
CREATE TABLE IF NOT EXISTS `posts` (
`id` int(11) NOT NULL auto_increment,
`bid` int(11) NOT NULL default '0',
`usern` text collate latin1_general_ci NOT NULL,
`weblog` text collate latin1_general_ci NOT NULL,
`ptitle` text collate latin1_general_ci NOT NULL,
`pkeys` text collate latin1_general_ci NOT NULL,
`ptext` text collate latin1_general_ci NOT NULL,
`pextext` text collate latin1_general_ci NOT NULL,
`pcomment` text collate latin1_general_ci NOT NULL,
`pcat` text collate latin1_general_ci NOT NULL,
`ptime` text collate latin1_general_ci NOT NULL,
`pdate` text collate latin1_general_ci NOT NULL,
`ppas` text collate latin1_general_ci NOT NULL,
`ppasm` text collate latin1_general_ci NOT NULL,
`phits` int(11) NOT NULL default '0',
`votea` int(11) NOT NULL,
`voteb` int(11) NOT NULL,
`status` text collate latin1_general_ci NOT NULL,
`ptags` text collate latin1_general_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=2877 ;
از دوستان کسی میتونه واسم ویرایش کنه؟