=== DB Table Viewer ===
Contributors: vrutti22
Tags: database, table, viewer, pagination, admin
Requires at least: 6.2
Tested up to: 6.9
Requires PHP: 7.2
Stable tag: 1.1
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

View and paginate database table data in a user-friendly format.

== Description ==

DB Table Viewer is a simple, read-only plugin that allows administrators to:

* Select any table in the WordPress database.
* View its data in a clean, paginated HTML table.
* Navigate through rows using AJAX-based pagination.

This plugin is particularly useful for debugging or inspecting custom database tables without writing SQL queries.

= Features =

* Dropdown to select from available database tables.
* Displays table data in a well-formatted, horizontally scrollable table.
* AJAX-based pagination that stays fast on large tables.
* Long values are shortened with a "Show more" toggle; NULL and binary values are clearly marked.
* Secure: nonce-protected requests, strict table validation and escaped output.
* Fully translation-ready.

== Installation ==

1. Upload the `db-table-viewer` folder to the `/wp-content/plugins/` directory, or install the plugin through the WordPress plugins screen.
2. Activate the plugin through the 'Plugins' menu in WordPress.
3. Navigate to **Tools > DB Table Viewer** to use the plugin.

== Frequently Asked Questions ==

= Who can use this plugin? =

Only administrators with the `manage_options` capability. On Multisite, only super admins can use it, because all sites share one database.

= Can this plugin modify database data? =

No, the plugin is read-only and does not allow any modifications to the database.

= What happens if I select a table with no data? =

The table's columns are shown along with a message that the table is empty.

== Screenshots ==

1. The DB Table Viewer entry in the Tools menu.
2. The table selection dropdown.
3. A paginated view of the selected table's data.

== Changelog ==

= 1.1 =
* Security: added nonce verification to AJAX requests.
* Security: table names are now validated against the database's table list.
* Security: on Multisite, access is restricted to super admins.
* Fix: pagination now shows a compact page range instead of one button per page.
* Fix: empty tables show their column headers.
* Fix: invalid or out-of-range page numbers no longer cause SQL errors.
* Fix: PHP notices for missing request parameters and placeholder-less prepared queries.
* Improvement: long values are truncated with a "Show more" toggle; NULL and binary values are labelled.
* Improvement: wide tables scroll horizontally.
* Improvement: all JavaScript strings are translatable.
* Improvement: prefixed AJAX action, class and CSS names to avoid conflicts with other plugins.

= 1.0 =
* Initial release.

== Upgrade Notice ==

= 1.1 =
Security update. Adds request verification and strict table validation. Requires WordPress 6.2 or later.
