$ wpdb-> get_row () hanya mengembalikan satu baris?


21

Kenapa sih? Saya mencoba permintaan yang sama di konsol dan mengembalikan beberapa baris. Inilah pertanyaannya:

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

Itu terus mengembalikan baris tunggal yang sama ketika ada beberapa pengguna aktif. Apakah saya melewatkan sesuatu?

Jawaban:



40

Ada tiga cara untuk menarik data dari database.

1 $wpdb->get_var.: gunakan ini untuk mendapatkan nilai tunggal dari tabel database. Seperti jika Anda ingin menghitung jumlah total komentar. Anda dapat melakukannya dengan cara berikut:

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

2 $wpdb->get_row.: Untuk mengambil seluruh baris tabel, Anda dapat menggunakan ini.

Contoh:

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

ATAU

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

Dengan menggunakan ARRAY_Aparameter di get_row, data posting Anda dikembalikan sebagai array asosiatif. Atau, Anda bisa menggunakan ARRAY_Nparameter untuk mengembalikan data posting Anda dalam array yang diindeks secara numerik.

3 $wpdb->get_results.: SELECTKueri standar harus menggunakan fungsi get_results untuk mengambil beberapa baris data dari database.

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

dan Anda membutuhkan yang terakhir, seperti yang Anda harapkan.


Contoh detail yang luar biasa ..
pixelngrain

Yakin! kenapa tidak ..
pixelngrain


0

solusi saya sederhana ..

<?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;
}

Menggunakan:

<?php
echo count_results();

4
Alangkah baiknya jika Anda juga bisa menjelaskan apa yang dilakukan kode ini selain mempostingnya.
bravokeyl

Ini menghitung baris dalam tabel, itu bukan jawaban untuk pertanyaan OP.
alexg
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.