выборка популярных с условием по дате
Код:
CREATE TABLE `{pref}_music_cats` (
`cid` int(11) NOT NULL auto_increment,
`title` varchar(55) NOT NULL,
`descr` varchar(255) default NULL,
`dir` varchar(255) NOT NULL,
`pid` smallint(5) NOT NULL,
PRIMARY KEY (`cid`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
CREATE TABLE `{pref}_music_songs` (
`id` int(11) NOT NULL auto_increment,
`uid` smallint(3) NOT NULL,
`cid` smallint(3) NOT NULL,
`singer` varchar(255) NOT NULL,
`song` varchar(255) NOT NULL,
`url` varchar(255) NOT NULL,
`preview` varchar(255) default NULL,
`date` varchar(255) NOT NULL,
`loads` smallint(3) NOT NULL,
`votes` smallint(4) NOT NULL,
`totalvotes` smallint(4) NOT NULL,
`comments` smallint(4) NOT NULL,
`status` int(1) NOT NULL,
`ip_sender` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
`cid` int(11) NOT NULL auto_increment,
`title` varchar(55) NOT NULL,
`descr` varchar(255) default NULL,
`dir` varchar(255) NOT NULL,
`pid` smallint(5) NOT NULL,
PRIMARY KEY (`cid`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
CREATE TABLE `{pref}_music_songs` (
`id` int(11) NOT NULL auto_increment,
`uid` smallint(3) NOT NULL,
`cid` smallint(3) NOT NULL,
`singer` varchar(255) NOT NULL,
`song` varchar(255) NOT NULL,
`url` varchar(255) NOT NULL,
`preview` varchar(255) default NULL,
`date` varchar(255) NOT NULL,
`loads` smallint(3) NOT NULL,
`votes` smallint(4) NOT NULL,
`totalvotes` smallint(4) NOT NULL,
`comments` smallint(4) NOT NULL,
`status` int(1) NOT NULL,
`ip_sender` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
есть запрос:
Код:
$result = $db->sql_query("SELECT id, singer, song FROM ".$prefix."_music_songs WHERE status !='0' ORDER BY loads DESC LIMIT ".$limit);
есть вопрос:
как преобразовать запрос к базе, чтобы вывод был с условием за n последних дней. напр. за 7 или за 30?
Заранее благодарю!
Цитата: зачем мне логин
есть таблица:
есть запрос:
есть вопрос:
как преобразовать запрос к базе, чтобы вывод был с условием за n последних дней. напр. за 7 или за 30?
Заранее благодарю!
Код:
CREATE TABLE `{pref}_music_cats` (
`cid` int(11) NOT NULL auto_increment,
`title` varchar(55) NOT NULL,
`descr` varchar(255) default NULL,
`dir` varchar(255) NOT NULL,
`pid` smallint(5) NOT NULL,
PRIMARY KEY (`cid`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
CREATE TABLE `{pref}_music_songs` (
`id` int(11) NOT NULL auto_increment,
`uid` smallint(3) NOT NULL,
`cid` smallint(3) NOT NULL,
`singer` varchar(255) NOT NULL,
`song` varchar(255) NOT NULL,
`url` varchar(255) NOT NULL,
`preview` varchar(255) default NULL,
`date` varchar(255) NOT NULL,
`loads` smallint(3) NOT NULL,
`votes` smallint(4) NOT NULL,
`totalvotes` smallint(4) NOT NULL,
`comments` smallint(4) NOT NULL,
`status` int(1) NOT NULL,
`ip_sender` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
`cid` int(11) NOT NULL auto_increment,
`title` varchar(55) NOT NULL,
`descr` varchar(255) default NULL,
`dir` varchar(255) NOT NULL,
`pid` smallint(5) NOT NULL,
PRIMARY KEY (`cid`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
CREATE TABLE `{pref}_music_songs` (
`id` int(11) NOT NULL auto_increment,
`uid` smallint(3) NOT NULL,
`cid` smallint(3) NOT NULL,
`singer` varchar(255) NOT NULL,
`song` varchar(255) NOT NULL,
`url` varchar(255) NOT NULL,
`preview` varchar(255) default NULL,
`date` varchar(255) NOT NULL,
`loads` smallint(3) NOT NULL,
`votes` smallint(4) NOT NULL,
`totalvotes` smallint(4) NOT NULL,
`comments` smallint(4) NOT NULL,
`status` int(1) NOT NULL,
`ip_sender` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
есть запрос:
Код:
$result = $db->sql_query("SELECT id, singer, song FROM ".$prefix."_music_songs WHERE status !='0' ORDER BY loads DESC LIMIT ".$limit);
есть вопрос:
как преобразовать запрос к базе, чтобы вывод был с условием за n последних дней. напр. за 7 или за 30?
Заранее благодарю!
дата в varchar(255)?:-)
это сильно)
сделай её int(4) и записывай туда time()
и там выкусывай:
Код:
WHERE `date` >= time() - 2592000
Цитата:
дата в varchar(255)?:-)
это сильно)
сделай её int(4) и записывай туда time()
это сильно)
сделай её int(4) и записывай туда time()
А ещё лучше её сделать DATETIME (тем более что оно и выглядит как человеческая дата) и выбирать простым
Код:
SELECT ... WHERE DATE_ADD(date, INTERVAL 1 MONTH);
См. доки MySQL.