wpdb का उपयोग करके get_results


12

मैं अपने डेटाबेस की जानकारी पुनः प्राप्त करने की कोशिश कर रहा हूँ। मैं pagesइस कथन का उपयोग करके सभी प्रदर्शित करना चाहता था , लेकिन मैं रिक्त हो रहा हूंARRAY

global $wpdb;
$result = $wpdb->get_results (
        "
        SELECT * 
        FROM  $wpdb->wp_posts 
        WHERE post_type =  'page'
        "
        );

echo $result; // display data

आउटपुट:

  ARRAY

संपादित करें : सुझावों के नीचे बदलने के बाद, मैं अब इसका उपयोग कर रहा हूं। लेकिन मुझे अभी भी कोई परिणाम नहीं मिला है:

global $wpdb;

    $posts = $wpdb->wp_posts;
    $result = $wpdb->get_results( " SELECT * FROM  $posts WHERE 'post_type' =  'page' "  );

    foreach ($result as $page) {
            echo $page->ID.'<br/>';

    }

$wpdb->wp_postsघुंघराले ब्रेसिज़ के साथ लपेटने का प्रयास करें , अर्थात। {$wpdb->wp_posts}..
t31os

जवाबों:


18
global $wpdb;

$result = $wpdb->get_results ( "
    SELECT * 
    FROM  $wpdb->posts
        WHERE post_type = 'page'
" );

foreach ( $result as $page )
{
   echo $page->ID.'<br/>';
   echo $page->post_title.'<br/>';
}

hi @balamurugan, मैंने आपके उत्तर की कोशिश की, लेकिन अभी भी कोई परिणाम नहीं मिल रहा है। आप ऊपर मेरा संपादित हिस्सा देख सकते हैं ।
user1933824

वास्तव में उर क्या हो रहा है और यू हटाओ ... मेरे कोड से। मैंने इसका परीक्षण किया और सभी पृष्ठ आईडी
बालस

मेरे मूल भाग के ऊपर देखे गए अनुसार मेरे संपादन भाग का उपयोग करें । मैं echo $resultसिर्फ यह सुनिश्चित करने की कोशिश करता हूं कि queryजो मुझे मिलता है उससे डेटा पुनर्प्राप्त करें जो प्रिंट है Array। जब मैं उपयोग करता echo $page->IDहूं तो मुझे कुछ भी नहीं मिलता है। im सच में यकीन नहीं क्यों ..
user1933824

आप बस उस कोड को पूरी तरह से कॉपी और पेस्ट करें। नतीजा पाने के लिए बस इतना ही करना है।
बालस

हाँ, यह काम किया! जब मैं अपने कोड और आपकी समीक्षा करने की कोशिश करता हूं, तो मैंने जो एकमात्र अंतर देखा, वह यह है कि यह भाग $tablename = $wpdb->prefix.'posts';कोडेक्स दस्तावेज में नहीं था। क्या आप मुझे समझा सकते हैं कि यह क्यों काम करता है?
user1933824

3

आपको थोड़ी गलतफहमी है:

कॉल करते समय $wpdb, आपको उन संपत्तियों की एक सूची मिलती है, जिनमें तालिकाओं के मुख्य नाम होते हैं:

// The custom prefix from wp-config.php
// only needed for custom tables
$wpdb->prefix

// Tables where you don't need a prefix: built in ones:
$wpdb->posts
$wpdb->postmeta
$wpdb->users

तो आपकी अंतिम क्वेरी इस तरह दिखाई देगी :

$wpdb->get_results( "SELECT * FROM {$wpdb->posts} WHERE post_type = 'page'" );

1
इसके लिए +1, धन्यवाद। लेकिन मुझे उस व्यक्ति को श्रेय देने की ज़रूरत थी जिसने मुझे पहले जवाब दिया था, उसने पहले से ही सही जवाब दिया था, मैं सिर्फ उसके निर्देश का पालन करने में सक्षम नहीं था।
user1933824

ज़रूर। सिडेनोट: जैसा कि मैंने कहा, $wpdb->prefixअंतर्निहित टेबल के लिए उपयोग नहीं किया जाना चाहिए। बस उन्हें सीधे फोन करें। निश्चित रूप से यह उसका उत्तर है।
kaiser

1

निम्नलिखित कोड का प्रयास करें। मैंने इसी तरह की समस्या का सामना किया और इसे 'FROM' फील्ड से $ wpdb निकालकर हल किया।

global $wpdb;
$result = $wpdb->get_results (
            "
            SELECT * 
            FROM  wp_posts 
            WHERE post_type =  'page'
            "
            );

echo $result; // display data

0

"खाली एरे" से क्या आपका मतलब 'खाली सरणी' है या आउटपुट 'ARRAY' है। यदि यह बाद की बात है, तो यह अपेक्षित आउटपुट है। आपको उस सरणी के माध्यम से लूप करना होगा और तदनुसार परिणाम प्रदर्शित करना होगा।

संदर्भ: http://codex.wordpress.org/Class_Reference/wpdb#SELECT_Generic_Results

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.