From 29dbe086901076330bf364caf5a79827590c7c3d Mon Sep 17 00:00:00 2001 From: jmontoyaa Date: Wed, 12 Jul 2017 11:57:17 +0200 Subject: [PATCH] Fix c_student_publication.post_group_id update see BT#12609 --- main/install/install.lib.php | 38 +++++++++++++++++++----------------- 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/main/install/install.lib.php b/main/install/install.lib.php index dbc54a71ca..2cb5df15d2 100755 --- a/main/install/install.lib.php +++ b/main/install/install.lib.php @@ -3241,35 +3241,37 @@ function fixPostGroupIds($connection) error_log('Fix c_student_publication.post_group_id'); // Fix post_group_id - $sql = "SELECT * FROM c_student_publication WHERE (post_group_id <> 0 AND post_group_id is not null)"; + $sql = "SELECT * FROM c_student_publication + WHERE (post_group_id <> 0 AND post_group_id is not null)"; $statement = $connection->executeQuery($sql); $result = $statement->fetchAll(); + foreach ($result as $row) { $groupId = $row['post_group_id']; $courseId = $row['c_id']; $workIid = $row['iid']; - $sql = "SELECT iid from c_group_info WHERE c_id = $courseId AND iid = $groupId"; + $sql = "SELECT iid from c_group_info + WHERE c_id = $courseId AND id = $groupId"; $statement = $connection->executeQuery($sql); $count = $statement->rowCount(); - if ($count == 0) { - $sql = "SELECT iid from c_group_info WHERE c_id = $courseId AND id = $groupId"; - $statement = $connection->executeQuery($sql); - $count = $statement->rowCount(); - if ($count > 0) { - $rowGroup = $statement->fetch(); - $newGroupId = $rowGroup['iid']; - if ($newGroupId) { - $sqlUpdate = "UPDATE c_student_publication - SET post_group_id = $newGroupId - WHERE - c_id = $courseId AND - iid = $workIid - "; - $connection->executeQuery($sqlUpdate); - } + if ($count > 0) { + $rowGroup = $statement->fetch(); + $newGroupId = $rowGroup['iid']; + if ($newGroupId == $groupId) { + continue; + } + if ($newGroupId) { + $sql = "UPDATE c_student_publication + SET post_group_id = $newGroupId + WHERE + c_id = $courseId AND + iid = $workIid + "; + $connection->executeQuery($sql); } } } + error_log('End - Fix c_student_publication.post_group_id'); // Delete c_student_publication from any session that doesn't exist anymore