$ wpdb-> get_row () केवल एक पंक्ति देता है?


21

क्यों यह है? मैंने कंसोल में एक ही क्वेरी की कोशिश की और यह कई पंक्तियों को वापस कर दिया। यहाँ प्रश्न है:

$this->wpdb->get_row("SELECT * FROM ".$this->wpdb->users." WHERE status = 'active'", ARRAY_A);

कई सक्रिय उपयोगकर्ता होने पर यह एक ही पंक्ति को लौटाता रहता है। क्या मैं कुछ भूल रहा हूँ?

जवाबों:


38

वास्तव में, get_row()केवल तभी उपयोग करें जब आप एक परिणाम प्राप्त करने की उम्मीद करते हैं, अन्यथा आप उपयोग कर सकते हैंget_results()



41

डेटाबेस से डेटा खींचने के तीन तरीके हैं।

1 $wpdb->get_var.: डेटाबेस तालिका से एकल मान प्राप्त करने के लिए इसका उपयोग करें। जैसे अगर आप कुल टिप्पणियों की संख्या गिनना चाहते हैं। आप इसे निम्नलिखित तरीके से कर सकते हैं:

<?php 
$comment_count = $wpdb->get_var($wpdb->prepare("SELECT COUNT(*) FROM $wpdb->comments;")); 
echo '<p>Total comments: ' . $comment_count . '</p>';
?>

2 $wpdb->get_row.: एक संपूर्ण तालिका पंक्ति पुनः प्राप्त करने के लिए आप इसका उपयोग कर सकते हैं।

उदाहरण:

<?php 
$thepost = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $wpdb->posts WHERE ID = 1" ) );
echo $thepost->post_title; 
?>

या

<?php 
$thepost = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $wpdb->posts WHERE ID = 1" ), ARRAY_A );
print_r ($thepost); 
?>

ARRAY_AGet_row में पैरामीटर का उपयोग करके आपके पोस्ट डेटा को एक सहयोगी सरणी के रूप में लौटाया जाता है। वैकल्पिक रूप से, आप ARRAY_Nअपने पोस्ट डेटा को संख्यात्मक रूप से अनुक्रमित सरणी में वापस करने के लिए पैरामीटर का उपयोग कर सकते हैं ।

3 $wpdb->get_results.: मानक SELECTप्रश्नों को डेटाबेस से डेटा की कई पंक्तियों को प्राप्त करने के लिए get_results फ़ंक्शन का उपयोग करना चाहिए।

<?php 
global $wpdb;
$allposts = $wpdb->get_results( $wpdb->prepare("SELECT ID, post_title FROM $wpdb->posts WHERE post_status = 'publish'") );
foreach ($allposts as $singlepost) { 
         echo '<p>' .$singlepost->post_title. '</p>';
}
?>

और आपको आखिरी जरूरत है, जैसा कि आप उम्मीद कर सकते हैं।


1
अद्भुत विस्तार के उदाहरण ..
Pixngrain

ज़रूर! क्यों नहीं ..
pixelngrain


0

मेरा समाधान सरल है ..

<?php
function count_results() {
    # use the data base
    global $wpdb;

    # Query to count all results from one table
    $sql_count_results = '
        SELECT count(*) as count
        FROM `YOUR_TABLE`;';

    # Ejecute function
    $results = $wpdb->get_row( $sql_count_results , OBJECT );

    # Return results
    return $results->count;
}

उपयोग:

<?php
echo count_results();

4
यह बहुत अच्छा होगा यदि आप यह भी बता सकते हैं कि यह कोड इसे पोस्ट करने की लत में क्या करता है।
ब्रावोकेयेल

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