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.