WP Data Access
  • Download
  • Support
  • Features
  • Pricing
  • Documentation
Select Page
Popular Search importsqlformqueryexport

WP Data Access

  • Getting started
  • Installation
  • What’s new?
  • Patches
  • Known limitations
  • FAQ

Data Tables

  • Getting Started
  • Creating and publishing
  • Responsive data tables
  • SEO friendly data tables
  • Adding hyperlinks
  • Extension Manager
  • Style Manager
  • Language settings
Styling
  • Style Manager
  • Premium styling
  • Global styling
  • Code Manager Styling
  • Manual styling
  • Styling issues
Filters
  • Static filters
  • Interactive filters
    • URL parameters
    • Search Panes
    • Search Builder
    • Search form
    • Advanced search
    • Geolocation search
Export & other buttons
  • Export to PDF, CSV, Excel, SQL
  • Print & copy buttons
  • Column selection buttons
  • Custom buttons
Advanced features
  • Advanced settings
  • Large tables & performance
  • Progressively SHOW MORE
  • Custom queries
  • Custom Post Types
  • Row grouping
  • Responsive master-detail
  • Master-detail tables
  • Non admin user access
Demos & tutorials
  • Demos
  • Tutorials

Data Apps

  • Data Projects
  • Projects and templates
  • Supported Data Types
  • One-To-Many relationships
  • Many-To-Many relationships
  • Registration page
  • Manage table options
  • Shortcode usage
Project Templates
  • Project Templates
  • Creating templates
  • Table Settings
  • Relationships
  • List Table
  • Data Entry
  • Reconcile
Data Forms
  • Data Forms
  • Overview
  • Project Demo
  • Page Demo
Advanced features
  • Adding filters
  • Custom validation
  • Add less/more button
  • User roles
  • Managing roles and users
  • Advanced table options
  • Advanced lookups
  • Front-end toolbar
  • Transfer to other WP site
Demos & tutorials
  • Demos
  • Tutorials

Data Explorer

  • Getting started
  • Navigation
  • Explore tables & views
  • Manage tables & views
  • Naming conventions
Manage Actions
  • Actions
Manage Settings
  • Settings
  • Search Settings
  • Geolocation Settings
  • Table Settings
  • Column Settings
  • Dynamic Hyperlinks
  • Dashboard Menus
Data Management
  • Import CSV & SQL files
  • Run SQL script files
  • Data Backup
Problems & solutions
  • InnoDB #rows estimation
  • Import file too large
  • Transfer to other WP DB

Remote Databases

  • MySQL | MariaDB
Other DBMS
  • Heterogeneous Connections
  • Using ODBC | JDBC
  • Connect to SQL Server
Premium Data Services
  • Remote wizard
  • START HERE
  • Errors and messages
  • Limitations
  • Tutorials
  • Remote Databases
    • Remote databases
    • SQL Server
    • PostgreSQL
    • Oracle
    • MariaDB | MySQL
    Remote Data Files
    • Remote data files
    • CSV files
    • JSON files
    • MS Access
    • XML files
    • Public URL
    • Synchronization
    Advanced features
    • Performance
    • Indexes

SQL

  • Getting Started
  • Tutorials
  • Visual Query Builder
  • Writing queries
  • Data exchange
  • Stored procedures
  • Database triggers
  • Scheduled queries

Business Intelligence

  • Getting started
  • Dashboards
  • Sharing dashboards
Dashboards Widgets
  • Dashboard Widgets
  • Publication Widget
  • Project Widget
  • Chart Widget
  • Custom Code Widget
  • Database Widget
  • Sharing Widgets

Table Design

  • Getting started
  • Introduction
  • Basic mode

Plugin Settings

  • Getting started
  • Plugin
  • Back-end
  • Front-end
  • Dashboard
  • Data Forms
  • Data Tables
  • Data Backup
  • Uninstall
  • Manage Repository
  • Manage Roles
  • System Info

Code

Shortcodes
  • Overview
  • wpdataaccess
  • wpdadataproject
  • wpdadataforms
  • wpdadiehard
  • wpdageomap
  • wpdawidget
Hooks & filters
  • Overview
  • Hooks
    • Overview
    • wpda_add_search_actions
    • wpda_add_search_filter
    • wpda_before_list_table
    • wpda_after_list_table
    • wpda_wpdataaccess_prepare
    Filters
    • Overview
    • wpda_column_default
    • wpda_before_simple_form
    • wpda_after_simple_form
    • wpda_construct_where_clause
API
  • WP Data Access API
  • Remote database access
  • CRUD Example
  • Extensions
    • Alternative search algorithm
    • Alternative buttons extension
Code Manager
  • Overview
  • Write code
  • Share(d) code

CRUD Example

Table of Contents
  • Code Manager
  • Notes

The following PHP code creates a fully functional CRUD page for table employees stored in a remote database named rdb:classicmodels. The page is added to the WordPress dashboard menu.

<?php

/*
Example CRUD page: Employee Administration
*/

// (1) Wait untill all plugins are loaded to ensure WP Data Access classes are loaded

add_action( 'plugins_loaded', function() {
	add_action( 'admin_menu', 'add_app_menu' );
} );

// (1.a) Code Manager premium users just need to call the add_wpda_menu function

// add_wpda_menu();

// (2) Add menu

function add_wpda_menu() {
	add_action( 'admin_menu', 'add_app_menu' );
}

// (3) Add page

function add_app_menu() {
	if ( ! class_exists( 'WPDataAccess\List_Table\WPDA_List_View' ) ) {
		// Is WP Data Access deactivated or uninstalled?
		return;
	}
	
	// (3.a) Main menu
	add_menu_page(
		'Employees',
		'Employees',				
		'manage_options',
		'wpda_wpdp_employee_admin', // Use prefix wpda_wpdp_ to load wpda css and js
		null,
		'dashicons-database-add',
		999999999
	);

	// (3.b) Sub menu
	$wpda_table_list_menu = add_submenu_page(
		'employee_admin',
		'Employees',
		'employee_admin',
		'manage_options',
		'wpda_wpdp_employee_admin',
		'show_page'
	);

	// (3.c) Instantiate class WPDA_List_View (configures screen options)
	global $wpda_table_list_view;
	$wpda_table_list_view = new WPDataAccess\List_Table\WPDA_List_View(
		[
			'page_hook_suffix'	=> $wpda_table_list_menu,	// Handle to sub menu
			'wpdaschema_name'	=> 'rdb:classicmodels',		// Use remote connection (also supports SQL Server, MS Access, PostgreSQL and other RDBMS)
			'table_name'		=> 'employees'			// Table emp is stored in my WordPress database
		]
	);
}

// (4) Show page

function show_page(){
	global $wpda_table_list_view;
	$wpda_table_list_view->show();
}

To use a table stored in the WordPress database, just remove the wpdaschema_name argument and change the table_name argument to select the correct table.

	// (3.c) Instantiate class WPDA_List_View (configures screen options)
	global $wpda_table_list_view;
	$wpda_table_list_view = new WPDataAccess\List_Table\WPDA_List_View(
		[
			'page_hook_suffix'	=> $wpda_table_list_menu,
			'table_name'		=> 'emp'
		]
	);

Code Manager #

Code Manager premium users need to copy the example code into a back-end PHP code block and uncomment 1.a.

Notes #

  • The API works similar for SQL Server, MS Access, PostgreSQL and other supported RDBMS
Share This Article :
  • Facebook
  • Twitter
  • LinkedIn
  • Pinterest
Still stuck? How can we help?

How can we help?

Updated on 2022-12-20
Remote database access

4 Comments

  1. Simon Angel
    Simon Angel on 2020-09-29 at 11:30 pm

    Peter

    I am struggling to publish any part of the WP DATA ACCESS derived tables or projects etc. to the front end website.

    I recognize the importance of security and have been working with data for 25+ years. I am completely stuck.

    Reply
    • Peter Schulz
      Peter Schulz on 2020-09-30 at 2:21 pm

      Hi Simon,

      WP Data Access projects and publications can be added to web pages with shortcodes:
      wpdadiehard (for projects)
      wpdataaccess (for publications)

      More information about these shortcodes can be found here:
      https://wpdataaccess.com/docs/shortcodes/shortcodes/

      Hope this helps!

      Best regards,
      Peter

      Reply
  2. Nishant Pokhrel
    Nishant Pokhrel on 2021-07-01 at 4:43 am

    I want to display the data only when it is searched and I want to blank it when the document loaded.

    Reply
    • Peter Schulz
      Peter Schulz on 2021-07-01 at 8:20 am

      Please have a look at this page Nishant:
      https://wpdataaccess.com/docs/hooks-and-filters/hooks-and-filters/
      You can use this filter to influence the search strategy. When no filter is added you can return a where clause like:
      where 1=2

      You might also want to have a look at the search extention written by Charles Godwin:
      https://github.com/CharlesGodwin/wpda-cwg-extensions

      Finally you could promote me and buy the premium version! 🙂 The premium version contains a number of search features including your requirement. See:
      https://wpdataaccess.com/pricing/

      Hope this helps,
      Peter

      Reply

Submit a Comment Cancel reply

Your email address will not be published. Required fields are marked *

Table of Contents
  • Code Manager
  • Notes

Links

Blogs
Tutorials
Demos

Socials

LinkedIn
Twitter

Get in touch

Premium support
Free support forum
Contact us

Resources

WordPress plugin directory
YouTube tutorials

Passionate Programmers B.V. © 2017 - 2023 All rights reserved