get_results wpdb ব্যবহার করে


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/>';
}

হাই @ বালামুরুগান, আমি আপনার উত্তরটি চেষ্টা করেছি কিন্তু এখনও কোনও ফল পাচ্ছি না। আপনি উপরে আমার সম্পাদনা অংশ দেখতে পারেন ।
ব্যবহারকারী 1933824

আসলে আপনি কী পাচ্ছেন এবং আপনি আমার কোড থেকে সরাবেন ... আমি এটি পরীক্ষা করেছি এবং সমস্ত পৃষ্ঠার আইডি
পেয়েছি

আমি আমার মূল পোস্টের উপরের মত আমার সম্পাদনা অংশটি ব্যবহার করছি । আমি echo $resultকেবল তা নিশ্চিত করার চেষ্টা করেছি queryযে আমি কী পেয়েছি তা থেকে তথ্য পুনরুদ্ধার করা Array। আমি যখন ব্যবহার echo $page->IDকরি তখন কিছুই পাই না। আমি সত্যিই নিশ্চিত নই কেন ..
ব্যবহারকারী 1933824

আপনি কেবল সেই কোডটি সম্পূর্ণ অনুলিপি করে আটকান। ফলাফল পাওয়ার জন্য এটাই করতে হবে।
বালাস

হ্যাঁ, এটা কাজ! যখন আমি আমার কোড এবং আপনার পর্যালোচনা করার চেষ্টা করি তখন কেবলমাত্র $tablename = $wpdb->prefix.'posts';তফাতটি এই অংশটি কোডেক্স ডকুমেন্টেশনে নষ্ট হয় না। আপনি আমাকে ব্যাখ্যা করতে পারেন কেন এটি কাজ করে?
ব্যবহারকারী 1933824

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, আপনাকে ধন্যবাদ। তবে আমাকে যে ব্যক্তি প্রথমে আমার প্রতিক্রিয়া জানিয়েছিল তার ক্রেডিট দেওয়ার দরকার ছিল, তিনি ইতিমধ্যে সঠিক উত্তরটি সরবরাহ করেছিলেন, আমি কেবল তার নির্দেশ অনুসরণ করতে সক্ষম ছিলাম না।
ব্যবহারকারী 1933824

অবশ্যই। সিডিনোট: যেমনটি আমি বলেছি, $wpdb->prefixবিল্ট-ইন টেবিলগুলির জন্য ব্যবহার করা উচিত নয়। কেবল তাদের সরাসরি কল করুন। স্থির এটিও তাঁর উত্তর।
কায়সার 14 ই

1

নিম্নলিখিত কোড ব্যবহার করে দেখুন। আমি অনুরূপ সমস্যার মুখোমুখি হয়েছি এবং F ডাব্লুপিডিবি 'FROM' ক্ষেত্র থেকে সরিয়ে এটি সমাধান করেছি।

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

echo $result; // display data

0

"ফাঁকা অ্যারে" বলতে কী বোঝায় আপনি একটি 'খালি অ্যারে' বা আউটপুটটি 'আরআরএই'। যদি এটি পরে হয় তবে এটি প্রত্যাশিত আউটপুট। আপনাকে সেই অ্যারের মধ্য দিয়ে লুপ করতে হবে এবং সেই অনুযায়ী ফলাফল প্রদর্শন করতে হবে।

তথ্যসূত্র: http://codex.wordpress.org/Class_References/wpdb#SELECT_ জেনেরিক_ ফলাফল

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.