summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKarl 'vollmerk' Vollmer <vollmer@ampache.org>2008-01-14 02:21:26 +0000
committerKarl 'vollmerk' Vollmer <vollmer@ampache.org>2008-01-14 02:21:26 +0000
commit3c99e635ee70b89cf1689d3372c7526e638b2b25 (patch)
treecc3199b3ba6be15fd82c66d4872731f8adb41687
parent13e017e3220c660026f053f04282e46c8fecdec6 (diff)
downloadampache-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.php26
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();