J'essaie de récupérer des informations sur ma base de données. Je voulais afficher tous les pages
à l'aide de cette déclaration, mais je reçois un vide ARRAY
global $wpdb;
$result = $wpdb->get_results (
"
SELECT *
FROM $wpdb->wp_posts
WHERE post_type = 'page'
"
);
echo $result; // display data
Sortie:
ARRAY
EDIT: Après avoir modifié les suggestions ci-dessous, je l’utilise maintenant. mais je n'obtiens toujours aucun résultat:
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/>';
}
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/>';
}
Vous avez un léger malentendu:
Lorsque vous appelez $wpdb
, vous obtenez une liste de propriétés contenant les noms principaux des tables:
// 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
Donc, votre dernière requête ressemblera ressemblerait ceci:
$wpdb->get_results( "SELECT * FROM {$wpdb->posts} WHERE post_type = 'page'" );
Essayez le code suivant. J'ai rencontré le même problème et je l'ai résolu en supprimant $ wpdb du champ 'FROM'.
global $wpdb;
$result = $wpdb->get_results (
"
SELECT *
FROM wp_posts
WHERE post_type = 'page'
"
);
echo $result; // display data
Par "tableau vide", voulez-vous dire un "tableau vide" ou est-ce que le résultat est "ARRAY"? Si c'est le dernier cas, c'est le résultat attendu. Vous devez parcourir ce tableau et afficher les résultats en conséquence.
Référence: http://codex.wordpress.org/Class_Reference/wpdb#SELECT_Generic_Results