summaryrefslogtreecommitdiffstats
path: root/lib/class/song.class.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/class/song.class.php')
-rw-r--r--lib/class/song.class.php64
1 files changed, 34 insertions, 30 deletions
diff --git a/lib/class/song.class.php b/lib/class/song.class.php
index b73ab1e8..b03c1123 100644
--- a/lib/class/song.class.php
+++ b/lib/class/song.class.php
@@ -78,42 +78,46 @@ class Song extends database_object {
*/
public static function build_cache($song_ids) {
- $idlist = '(' . implode(',', $song_ids) . ')';
+ if ($ids) {
+ $idlist = '(' . implode(',', $song_ids) . ')';
- // Song data cache
- $sql = "SELECT song.id,file,catalog,album,year,artist,".
- "title,bitrate,rate,mode,size,time,track,played,song.enabled,update_time,tag_map.tag_id,".
- "addition_time FROM `song` " .
- "LEFT JOIN `tag_map` ON `tag_map`.`object_id`=`song`.`id` AND `tag_map`.`object_type`='song' " .
- "WHERE `song`.`id` IN $idlist";
- $db_results = Dba::read($sql);
+ // Song data cache
+ $sql = "SELECT song.id,file,catalog,album,year,artist,".
+ "title,bitrate,rate,mode,size,time,track,played,song.enabled,update_time,tag_map.tag_id,".
+ "addition_time FROM `song` " .
+ "LEFT JOIN `tag_map` ON `tag_map`.`object_id`=`song`.`id` AND `tag_map`.`object_type`='song' " .
+ "WHERE `song`.`id` IN $idlist";
+ $db_results = Dba::read($sql);
- while ($row = Dba::fetch_assoc($db_results)) {
- parent::add_to_cache('song',$row['id'],$row);
- $artists[$row['artist']] = $row['artist'];
- $albums[$row['album']] = $row['album'];
- $tags[$row['tag_id']] = $row['tag_id'];
- }
+ while ($row = Dba::fetch_assoc($db_results)) {
+ parent::add_to_cache('song',$row['id'],$row);
+ $artists[$row['artist']] = $row['artist'];
+ $albums[$row['album']] = $row['album'];
+ $tags[$row['tag_id']] = $row['tag_id'];
+ }
- Artist::build_cache($artists);
- Album::build_cache($albums);
- Tag::build_cache($tags);
- Tag::build_map_cache('song',$song_ids);
-
- // If we're rating this then cache them as well
- if (Config::get('ratings')) {
- Rating::build_cache('song',$song_ids);
- }
+ Artist::build_cache($artists);
+ Album::build_cache($albums);
+ Tag::build_cache($tags);
+ Tag::build_map_cache('song',$song_ids);
+
+ // If we're rating this then cache them as well
+ if (Config::get('ratings')) {
+ Rating::build_cache('song',$song_ids);
+ }
- // Build a cache for the song's extended table
- $sql = "SELECT * FROM `song_data` WHERE `song_id` IN $idlist";
- $db_results = Dba::read($sql);
+ // Build a cache for the song's extended table
+ $sql = "SELECT * FROM `song_data` WHERE `song_id` IN $idlist";
+ $db_results = Dba::read($sql);
- while ($row = Dba::fetch_assoc($db_results)) {
- parent::add_to_cache('song_data',$row['song_id'],$row);
- }
+ while ($row = Dba::fetch_assoc($db_results)) {
+ parent::add_to_cache('song_data',$row['song_id'],$row);
+ }
- return true;
+ return true;
+ } else {
+ return false;
+ }
} // build_cache