diff --git a/ChangeLog b/ChangeLog
index 19f276b0b6..0b8e8d62d9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -19,6 +19,7 @@ phpMyAdmin - ChangeLog
+ rfe #3488185 draggable columns vs copy column name
+ Patch #3507001 Contest-4: Textarea for large character columns
+ Removed the PHP version of the ENUM editor
++ Patch #3507111 Display distinct results, linked to corresponding data rows
3.5.1.0 (not yet released)
- bug #3510784 [edit] Limit clause ignored when sort order is remembered
diff --git a/js/makegrid.js b/js/makegrid.js
index 948db0b018..8bd4aa95ac 100644
--- a/js/makegrid.js
+++ b/js/makegrid.js
@@ -719,6 +719,14 @@ function PMA_makegrid(t, enableResize, enableReorder, enableVisib, enableGridEdi
// empty all edit area, then rebuild it based on $td classes
$editArea.empty();
+
+ // add show data row link if the data resulted by 'browse distinct values' in table structure
+ if ($td.find('input').hasClass('data_browse_link')) {
+ var showDataRowLink = document.createElement('div');
+ showDataRowLink.className = 'goto_link';
+ $(showDataRowLink).append("" + g.showDataRowLinkText + "");
+ $editArea.append(showDataRowLink);
+ }
// add goto link, if this cell contains a link
if ($td.find('a').length > 0) {
@@ -1591,6 +1599,7 @@ function PMA_makegrid(t, enableResize, enableReorder, enableVisib, enableGridEdi
g.saveCellWarning = PMA_messages['strSaveCellWarning'];
g.alertNonUnique = PMA_messages['strAlertNonUnique'];
g.gotoLinkText = PMA_messages['strGoToLink'];
+ g.showDataRowLinkText = PMA_messages['strShowDataRowLink'];
// initialize cell editing configuration
g.saveCellsAtOnce = $('#save_cells_at_once').val();
diff --git a/js/messages.php b/js/messages.php
index e5ca3bc8f0..bc10c3fd53 100644
--- a/js/messages.php
+++ b/js/messages.php
@@ -353,6 +353,7 @@ $js_messages['strGridEditFeatureHint'] = __('You can also edit most columns
';
if (isset($analyzed_sql[0]['select_expr']) && is_array($analyzed_sql[0]['select_expr'])) {
@@ -2862,6 +2864,26 @@ function PMA_prepare_row_data($class, $condition_field, $analyzed_sql, $meta, $m
} else {
$result .= ($transform_function != $default_function ? $transform_function($data, $transform_options, $meta) : $transform_function($data, array(), $meta));
}
+
+ // create hidden field if results from structure table
+ if (isset($_GET['browse_distinct']) && ($_GET['browse_distinct'] == 1)) {
+
+ $where_comparison = " = '" . $data . "'";
+
+ $_url_params_for_show_data_row = array(
+ 'db' => $db,
+ 'table' => $meta->orgtable,
+ 'pos' => '0',
+ 'sql_query' => 'SELECT * FROM '
+ . PMA_backquote($db) . '.' . PMA_backquote($meta->orgtable)
+ . ' WHERE ' . PMA_backquote($meta->orgname)
+ . $where_comparison,
+ );
+
+ $result .= '';
+
+ }
+
$result .= '' . "\n";
return $result;
diff --git a/tbl_structure.php b/tbl_structure.php
index 359d32f203..6e0c724e36 100644
--- a/tbl_structure.php
+++ b/tbl_structure.php
@@ -466,7 +466,7 @@ foreach ($fields as $row) {