えーっと……SQLは合っていると仮定して……シングルクォート内では変数展開は行われないので$wpdb->wp_usermeta
がそのままクエリに入ってしまってますね。
イマイチキレイじゃない気もするけど
$wpdb->get_var('SELECT SUM(meta_value) FROM ' . $wpdb->wp_usermeta . ' WHERE meta_key = "counts"');
なりなんなり……
トピック投稿者
吉田 丈治
(@geeorgey)
Hinaloeさんいつもありがとうございます。初歩的な間違いですみませんでした。
が…解決せず。
やりたいことはこのページにある以下のコードと同様です。
$meta_key = 'miles'; //実在するメタキーに変更する
$allmiles = $wpdb->get_var( $wpdb->prepare(
"
SELECT sum(meta_value)
FROM $wpdb->postmeta
WHERE meta_key = %s
",
$meta_key
) );
こちらを参考に以下の様にしてみたものの数値が返ってこずでした。
function countdata(){
global $wpdb;
$meta_key = 'counts';
$allsbns = $wpdb->get_var( $wpdb->prepare(
"
SELECT sum(meta_value)
FROM $wpdb->wp_usermeta
WHERE meta_key = %s
",
$meta_key
) );
return $allsbns;
}
add_shortcode('printcountdata','countdata');
ちなみにMySQLでは以下のコマンドで必要なデータが帰ってきています。
select sum(meta_value) from wp_usermeta where meta_key = "counts";
return $allsbns;
ではなくvar_dump( $allsbns );
にしたら何か出できませんか?
トピック投稿者
吉田 丈治
(@geeorgey)
$user_count = $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->users" );
return $user_count;
これは問題なく動きますね…どこを間違えているのだろう
トピック投稿者
吉田 丈治
(@geeorgey)
ビンゴでした。
$wpdb->usermeta
接頭辞…要らないんですね。勉強になりました!!!!皆様ありがとうございます。