$ wpdb-> get_row () sadece tek bir satır döndürür mü?


21

Neden o? Konsolda aynı sorguyu denedim ve birden çok satır döndürdü. İşte sorgu:

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

Birkaç aktif kullanıcı olduğunda aynı tek sırayı döndürmeye devam eder. Bir şey mi eksik?

Yanıtlar:



40

Veritabanından veri almanın üç yolu vardır.

1 $wpdb->get_var.: bunu veritabanı tablosundan tek bir değer elde etmek için kullanın. Toplam yorum sayısını saymak istiyorsanız. Aşağıdaki şekilde yapabilirsiniz:

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

2 $wpdb->get_row.: Tablo satırının tamamını almak için bunu kullanabilirsiniz.

Örnek:

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

VEYA

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

ARRAY_AGet_row içindeki parametreyi kullanarak gönderi verileriniz ilişkili bir dizi olarak döndürülür. Alternatif olarak, ARRAY_Ngönderi verilerinizi sayısal olarak dizine alınmış bir dizide döndürmek için parametreyi kullanabilirsiniz .

3 $wpdb->get_results.: Standart SELECTsorgular, veritabanından birden fazla veri satırı almak için get_results işlevini kullanmalıdır.

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

ve beklediğiniz gibi sonuncusuna ihtiyacınız var.


Harika detay örnekleri ..
— pixelngrain

Emin! neden olmasın ..
— pixelngrain


0

benim çözümüm basittir.

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

kullanın:

<?php
echo count_results();

4
Bu kodun göndermeye ek olarak ne yaptığını da açıklarsanız çok iyi olur.
— bravokeyl

Bu bir tablodaki satırları sayar, OP'nin sorusuna bir cevap değildir.
— alexg
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.