aboutsummaryrefslogtreecommitdiffstats
path: root/include/functions_user.inc.php
diff options
context:
space:
mode:
authorplegall <plg@piwigo.org>2010-05-23 23:43:43 +0000
committerplegall <plg@piwigo.org>2010-05-23 23:43:43 +0000
commit3181dded77150a39ff0ea853c5e379171e0272b2 (patch)
tree5a4a51f3b357724e90012500bee8075a62f8d086 /include/functions_user.inc.php
parent9bef83abe8f266ac0f2e7e367a1cb218aa247407 (diff)
merge r6312 from branch 2.1 to trunk
bug 1684 fixed: the test to check availability of the user_infos line was wrong. I had changed the old db_num_rows > 0 because it was not working with SQLite. As suggested by nicolas, let's use a simpler trick "count(1)" in the query itself, this way it should work with any database engine. I've also removed the while (true) (ugly infinite loop, with a condition for exit) that was producing an infinite loop for Piwigo installations with 2.0 database model and 2.1 code (before launching upgrade.php) git-svn-id: http://piwigo.org/svn/trunk@6315 68402e56-0260-453c-a942-63ccdbb3a9ee
Diffstat (limited to 'include/functions_user.inc.php')
-rw-r--r--include/functions_user.inc.php32
1 files changed, 18 insertions, 14 deletions
diff --git a/include/functions_user.inc.php b/include/functions_user.inc.php
index b8922ffec..0c9412e38 100644
--- a/include/functions_user.inc.php
+++ b/include/functions_user.inc.php
@@ -267,6 +267,7 @@ function getuserdata($user_id, $use_cache)
$userdata = array();
+ // retrieve basic user data
$query = '
SELECT ';
$is_first = true;
@@ -289,26 +290,29 @@ SELECT ';
$row = pwg_db_fetch_assoc(pwg_query($query));
- while (true)
- {
- $query = '
-SELECT ui.*, uc.*, t.name AS theme_name
+ // retrieve additional user data
+ $query = '
+SELECT
+ COUNT(1) AS counter,
+ ui.*,
+ uc.*,
+ t.name AS theme_name
FROM '.USER_INFOS_TABLE.' AS ui
LEFT JOIN '.USER_CACHE_TABLE.' AS uc ON ui.user_id = uc.user_id
LEFT JOIN '.THEMES_TABLE.' AS t ON t.id = ui.theme
- WHERE ui.user_id = \''.$user_id.'\'';
+ WHERE ui.user_id = \''.$user_id.'\'
+;';
+ $result = pwg_query($query);
+ $user_infos_row = pwg_db_fetch_assoc($result);
+ if (0 == $user_infos_row['counter']) {
+ create_user_infos($user_id);
+
$result = pwg_query($query);
- if ($result)
- {
- break;
- }
- else
- {
- create_user_infos($user_id);
- }
+ $user_infos_row = pwg_db_fetch_assoc($result);
}
- $row = array_merge($row, pwg_db_fetch_assoc($result));
+ // then merge basic + additional user data
+ $row = array_merge($row, $user_infos_row);
foreach ($row as $key => $value)
{