8

I'm quite new to wordpress. I'm trying to build a tableview within a wordpress page. Therfore I need a custom SQL Query to my MySQL Database.

  1. Query data from my MySQL Database
  2. Get the result somehow in a HTML format in order to display it in a table view within a wordpress page.

My question is: How can I use the wpdb_class in a wordpress page when it is not an option to put php code in a page?

6
  • 2
    Use the wpdb class for custom queries in wordpress. You may also want to try the WP_Query class. Commented May 3, 2013 at 14:12
  • 3
    Please edit your question to explain exactly what you're trying to accomplish. Telling us that you want to pull data from MySQL into a WordPress page is too vague for you to get any useful help. Commented May 3, 2013 at 14:18
  • You are expected to have researched the problem and made an attempt at solving it before posting a question. Check the Codex page for shortcodes to start. This question is pretty broad and looks like several questions in one. See also: how to ask a good question Commented May 3, 2013 at 14:19
  • I've edited my question and I know that the wpdb_class is somehow the answer, but where do I need to put the php code that is required in order to use the wpdb_class. As I guess it needs to be placed somewhere outside of the wordpress page, I need to get the results somehow transferred from that place to the wordpress page. Commented May 3, 2013 at 14:28
  • 1
    You can either write a WordPress plugin, or you can insert your code into your theme's functions.php file. Allowing PHP code to be added directly in the WP editor is a security nightmare, to put it mildly. Commented May 3, 2013 at 14:41

2 Answers 2

11

The wpdb object can be used to run arbitrary queries against the WordPress database. Let's say you want to list the most recent 4 posts:

$results = $wpdb->get_results( "SELECT * FROM $wpdb->posts WHERE `post_type`='post' LIMIT 4" );

The $wpdb->posts variable will output the table name for posts. It's usually wp_posts, but if you're using a custom database prefix this could be different.

However, if you're trying to grab post data (or custom post data or meta information or user data or ... anything built-in to WordPress), you should really be using WP_Query.

Here's the same query above, re-written for WP_Query:

$query = new WP_Query(
    array(
        'post_type'      => 'post',
        'posts_per_page' => 4
    )
);

The advantage of using WP_Query is that it will automatically join against the post meta table and return an array of WP_Post objects that you can work with and loop through.

2
<?php 
global $wpdb;
$post_id = $wpdb->get_results("SELECT post_id FROM $wpdb->postmeta WHERE (meta_key = 'mfn-post-link1' AND meta_value = '". $from ."')");
    print_r($post_id); /
?>

Define global variable $wpdb then make custom query and pass $wpdb->get_results();

2
  • Please edit your answer, and add an explanation: why could that solve the problem? Commented Nov 9, 2020 at 13:38
  • With this query you can use in any where at the wordpress for get data into wordpress Commented Nov 10, 2020 at 6:11

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.