我正在尝试显示表meta_value
中post_id
相同的所有实例的postmeta
(数字)之和。通过查看其他回复,以下似乎应该做什么,但我只是没有得到任何回报
<?php
global $wpdb;
$data = $wpdb->query("
SELECT SUM(meta_value)
FROM $wpdb->postmeta
WHERE `post_id` = $post_id
");
echo $data;
?>
与其他答案相比,我无法弄清楚这有什么问题。有什么指针吗?
由于
答案 0 :(得分:0)
嗯......您是否已连接到数据库?当你在一个字符串中包含对象属性时,将它们包含在大括号中是一种很好的形式,如下所示:
$data = $wpdb->query("SELECT SUM(meta_value)
FROM {$wpdb->postmeta}
WHERE `post_id` = $post_id
");
答案 1 :(得分:0)
封装你的php变量,如果它们很复杂,那么:
FROM {$wpdb->postmeta}
答案 2 :(得分:0)
对于选择,您应该使用$wpdb->get_results()
而不是$wpdb->query()
。
$wpdb->query()
“...返回一个与受影响/选择的行数相对应的整数。”
http://codex.wordpress.org/Class_Reference/wpdb#SELECT_Generic_Results
答案 3 :(得分:0)
好的,我已更改代码以反映上述内容,包括封装和使用get_results
而不是query
,但现在只需将'Array'作为返回结果。
global $wpdb;
$data = $wpdb->get_results("
SELECT SUM($wpdb->postmeta.meta_value)
FROM {$wpdb->postmeta}
WHERE `post_id` = the_id()
");
echo $data;
我是否需要使用foreach()
循环来循环生成的数组?我还检查了数据以及the_id()
是否有效