wpdb kullanarak get_results


12

Veritabanımdaki bilgileri almaya çalışıyorum. Hepsini pagesbu ifadeyi kullanarak görüntülemek istedim , ama boşARRAY

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

echo $result; // display data

Çıktı:

  ARRAY

EDIT : Aşağıdaki önerileri değiştirdikten sonra şimdi kullanıyorum. ama yine de sonuç alamıyorum:

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_postsKıvırcık parantezlerle sarmayı deneyin , yani. {$wpdb->wp_posts}..
— t31os

Yanıtlar:


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

merhaba @ balamurugan, cevabınızı denedim ama im hala sonuç alamıyorum. yukarıdaki Düzenleme bölümümü görebilirsiniz .
— user1933824

aslında ne alıyorum ve u kaldırmak ... benim koddan. Ben test ve tüm sayfa kimliği alma
— Balas

im orijinal düzenleme yukarıda görüldüğü gibi benim düzenleme parçası kullanarak . i echo $resultim almak queryne elde yazdırma veri olduğundan emin olmak için çalıştı Array. kullandığımda echo $page->IDhiçbir şey alamıyorum. im gerçekten neden emin değilim ..
— user1933824

sadece bu kodu tamamen kopyalayıp yapıştırmanız yeterlidir. Sonuç almak için tek yapmanız gereken.
— Balas

evet, işe yaradı! kodumu ve seninki gözden geçirmeye çalıştığınızda, gördüğüm tek fark bu bölüm kod $tablename = $wpdb->prefix.'posts';kısmı belgelerinde bu kısmı değildi. bana neden işe yaradığını açıklayabilir misin?
— user1933824

3

Hafif bir yanlış anlaşmanız var:

Arama yaparken $wpdb, tabloların temel adlarını içeren özelliklerin bir listesini alırsınız:

// 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

Yani nihai sorgu olmazdı gibi bu:

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

1
Bunun için +1, teşekkürler. ama bana ilk cevap veren kişi kredi vermek gerekiyordu, o zaten doğru cevap verdi, ben sadece onun talimatını takip etmek mümkün değildi.
— user1933824

Elbette. Sidenote: Belirttiğim gibi, $wpdb->prefixyerleşik tablolar için kullanılmamalıdır. Doğrudan onları arayın. Bu onun yanıtı da düzeltildi.
— kaiser

1

Aşağıdaki kodu deneyin. Benzer bir sorunla karşılaştım ve $ wpdb'yi 'FROM' alanından kaldırarak çözdüm.

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

echo $result; // display data

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.