Utilizzare get_results con wpdb

19 ago 2013, 16:10:56
Visualizzazioni: 175K
Voti: 19

Sto cercando di recuperare informazioni dal mio database. Volevo visualizzare tutte le pages usando questa istruzione, ma sto ottenendo un ARRAY vuoto

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

echo $result; // visualizza i dati

Output:

  ARRAY

MODIFICA: Dopo aver applicato i suggerimenti qui sotto, ora sto usando questo codice ma continuo a non ottenere risultati:

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

    }
1
Commenti

Prova a racchiudere $wpdb->wp_posts tra parentesi graffe, cioè {$wpdb->wp_posts}.

t31os t31os
19 ago 2013 16:40:46
Tutte le risposte alla domanda 4
6
30
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/>';
}
19 ago 2013 16:24:42
Commenti

ciao @balamurugan, ho provato la tua risposta ma non ottengo ancora alcun risultato. puoi vedere la mia parte [EDIT] sopra.

user1933824 user1933824
19 ago 2013 16:34:03

in realtà cosa stai ottenendo e hai rimosso ... dal mio codice. l'ho testato e ottengo tutti gli ID delle pagine

Balas Balas
19 ago 2013 16:45:03

sto usando la mia parte [edit] come si vede sopra il mio post originale. ho provato echo $result solo per assicurarmi di recuperare i dati dalla query ciò che ottengo è la stampa di Array. quando uso echo $page->ID non ottengo nulla. non sono proprio sicuro del perché..

user1933824 user1933824
19 ago 2013 16:52:36

basta semplicemente copiare e incollare completamente quel codice. Questo è tutto ciò che devi fare per ottenere il risultato.

Balas Balas
19 ago 2013 16:55:16

sì, ha funzionato! quando ho provato a confrontare il mio codice con il tuo, l'unica differenza che ho visto è questa parte $tablename = $wpdb->prefix.'posts'; questa parte non era nella documentazione del codex. puoi spiegarmi perché funziona?

user1933824 user1933824
19 ago 2013 16:59:04

$wpdb->prefix = wp_ (come nel prefisso della tabella del database) che sarà come wp_posts nel database. in futuro puoi dare il tuo nome come prefisso. in modo che non influisca su questo tipo di codice. E cerca sempre di usare questo metodo.

Balas Balas
19 ago 2013 17:02:39
Mostra i restanti 1 commenti
2

Hai un piccolo fraintendimento:

Quando richiami $wpdb, ottieni una lista di proprietà che contengono i nomi core delle tabelle:

// Il prefisso personalizzato da wp-config.php
// necessario solo per tabelle personalizzate
$wpdb->prefix

// Tabelle dove non serve un prefisso: quelle integrate:
$wpdb->posts
$wpdb->postmeta
$wpdb->users

Quindi la tua query finale dovrebbe apparire così:

$wpdb->get_results( "SELECT * FROM {$wpdb->posts} WHERE post_type = 'page'" );
19 ago 2013 16:45:57
Commenti

+1 per questo, grazie. ma ho dovuto dare credito alla persona che mi ha risposto per prima, aveva già fornito la risposta corretta, semplicemente non ero riuscito a seguire le sue istruzioni.

user1933824 user1933824
19 ago 2013 17:02:06

Certo. Nota a margine: Come ho detto, $wpdb->prefix non dovrebbe essere usato per le tabelle integrate. Chiamatele direttamente. Ho corretto anche nella sua risposta.

kaiser kaiser
19 ago 2013 17:08:33
0

Prova il seguente codice. Ho affrontato un problema simile e l'ho risolto rimuovendo $wpdb dal campo 'FROM'.

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

echo $result; // visualizza i dati
16 lug 2014 03:46:41
0

Per "blank Array" intendi un 'array vuoto' o l'output è 'ARRAY'? Se si tratta del secondo caso, allora è l'output previsto. Devi scorrere quell'array e visualizzare i risultati di conseguenza.

Riferimento: http://codex.wordpress.org/Class_Reference/wpdb#SELECT_Generic_Results

19 ago 2013 16:16:50