aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorrvelices <rv-github@modusoptimus.com>2008-04-25 23:39:06 +0000
committerrvelices <rv-github@modusoptimus.com>2008-04-25 23:39:06 +0000
commitf95f48a226118dd541130e2cec8e18fd13bff128 (patch)
treed65014464efe3e2f0ca9f83156914797a337813b /include
parentcd30335df7f2a4c3b15c5f2ba181dc1b0444f00a (diff)
- merge r2308 and r2309 from trunk to branch-1_7
- minor mysql query optimizations - less mysql queries on the picture page (under some circumstances) git-svn-id: http://piwigo.org/svn/branches/branch-1_7@2310 68402e56-0260-453c-a942-63ccdbb3a9ee
Diffstat (limited to 'include')
-rw-r--r--include/functions.inc.php25
-rw-r--r--include/functions_tag.inc.php13
-rw-r--r--include/picture_rate.inc.php12
3 files changed, 27 insertions, 23 deletions
diff --git a/include/functions.inc.php b/include/functions.inc.php
index d1756a82f..9b8dea1a3 100644
--- a/include/functions.inc.php
+++ b/include/functions.inc.php
@@ -533,19 +533,6 @@ function pwg_log($image_id = null, $image_type = null)
$tags_string = implode(',', $tag_ids);
}
- // here we ask the database the current date and time, and we extract
- // {year, month, day} from the current date. We could do this during the
- // insert query with a CURDATE(), CURTIME(), DATE_FORMAT(CURDATE(), '%Y')
- // ... but I (plg) think it would cost more than a double query and a PHP
- // extraction.
- $query = '
-SELECT CURDATE(), CURTIME()
-;';
- list($curdate, $curtime) = mysql_fetch_row(pwg_query($query));
-
- list($curyear, $curmonth, $curday) = explode('-', $curdate);
- list($curhour) = explode(':', $curtime);
-
$query = '
INSERT INTO '.HISTORY_TABLE.'
(
@@ -565,12 +552,12 @@ INSERT INTO '.HISTORY_TABLE.'
)
VALUES
(
- \''.$curdate.'\',
- \''.$curtime.'\',
- '.$curyear.',
- '.$curmonth.',
- '.$curday.',
- '.$curhour.',
+ CURDATE(),
+ CURTIME(),
+ YEAR( CURDATE() ),
+ MONTH( CURDATE() ),
+ DAYOFMONTH( CURDATE() ),
+ HOUR( CURTIME() ),
'.$user['id'].',
\''.$_SERVER['REMOTE_ADDR'].'\',
'.(isset($page['section']) ? "'".$page['section']."'" : 'NULL').',
diff --git a/include/functions_tag.inc.php b/include/functions_tag.inc.php
index c6dc01db6..281517779 100644
--- a/include/functions_tag.inc.php
+++ b/include/functions_tag.inc.php
@@ -53,8 +53,12 @@ SELECT id, name, url_name, count(*) counter
'visible_categories' => 'category_id',
'visible_images' => 'image_id'
),
- 'WHERE'
- );
+ '
+ WHERE'
+ ).'
+ GROUP BY tag_id
+ ORDER BY NULL';
+ $tag_counters = simple_hash_from_query($query, 'tag_id', 'counter');
if (!empty($where_tag_img))
{
@@ -261,6 +265,11 @@ SELECT id, name, url_name, count(*) counter
ORDER BY counter DESC
LIMIT 0,'.$max_tags;
}
+ else
+ {
+ $query .= '
+ ORDER BY NULL';
+ }
$result = pwg_query($query);
$tags = array();
diff --git a/include/picture_rate.inc.php b/include/picture_rate.inc.php
index 331cb41b0..f2410945b 100644
--- a/include/picture_rate.inc.php
+++ b/include/picture_rate.inc.php
@@ -32,14 +32,22 @@
if ($conf['rate'])
{
- $query = '
+ if ( NULL != $picture['current']['average_rate'] )
+ {
+ $query = '
SELECT COUNT(rate) AS count
, ROUND(AVG(rate),2) AS average
, ROUND(STD(rate),2) AS STD
FROM '.RATE_TABLE.'
WHERE element_id = '.$picture['current']['id'].'
;';
- $row = mysql_fetch_array(pwg_query($query));
+ $row = mysql_fetch_array(pwg_query($query));
+ }
+ else
+ { // avg rate null -> no rate -> no need to query db
+ $row = array( 'count'=>0, 'average'=>NULL, 'std'=>NULL );
+ }
+
if ($row['count'] == 0)
{
$value = l10n('no_rate');