diff options
author | Karl 'vollmerk' Vollmer <vollmer@ampache.org> | 2008-01-14 02:21:26 +0000 |
---|---|---|
committer | Karl 'vollmerk' Vollmer <vollmer@ampache.org> | 2008-01-14 02:21:26 +0000 |
commit | 3c99e635ee70b89cf1689d3372c7526e638b2b25 (patch) | |
tree | cc3199b3ba6be15fd82c66d4872731f8adb41687 | |
parent | 13e017e3220c660026f053f04282e46c8fecdec6 (diff) | |
download | ampache-3c99e635ee70b89cf1689d3372c7526e638b2b25.tar.gz ampache-3c99e635ee70b89cf1689d3372c7526e638b2b25.tar.bz2 ampache-3c99e635ee70b89cf1689d3372c7526e638b2b25.zip |
another tweak to the albums of the moment, removed a query
-rw-r--r-- | lib/album.lib.php | 26 |
1 files changed, 6 insertions, 20 deletions
diff --git a/lib/album.lib.php b/lib/album.lib.php index 3216b35e..2bdd55b8 100644 --- a/lib/album.lib.php +++ b/lib/album.lib.php @@ -107,35 +107,21 @@ function get_image_from_source($data) { */ function get_random_albums($count=6) { - // Make sure that we have anything to pick from - $sql = "SELECT `id` FROM `album` LIMIT 7"; - $db_results = Dba::query($sql); - - $rows = Dba::num_rows($db_results); - if ($rows < 7) { return false; } - - $sql = 'SELECT '; - - for ($i = 0; $i < ceil($count * 2); $i++) { - if ($i > 0) $sql .= ', '; - - $sql .= 'floor(rand() * count(id))'; - } - $sql .= ' FROM `album`'; + $sql = 'SELECT `id` FROM `album` ORDER BY RAND() LIMIT ' . ($count*2); $db_results = Dba::query($sql); $in_sql = '`album_id` IN ('; - $row = Dba::fetch_row($db_results); - - for ($i = 0; $i < ceil($count * 1.5); $i++) { - $in_sql .= "'$row[$i]',"; + while ($row = Dba::fetch_assoc($db_results)) { + $in_sql .= "'" . $row['id'] . "',"; + $total++; } + if ($total < $count) { return false; } + $in_sql = rtrim($in_sql,',') . ')'; $sql = "SELECT `album_id`,ISNULL(`art`) AS `no_art` FROM `album_data` WHERE $in_sql"; - $db_results = Dba::query($sql); $results = array(); |