0

我试图显示表中相同的meta_value所有实例的总和(数字)。从查看其他回复来看,以下似乎应该是这样做的,但我什么也没得到post_idpostmeta

<?php     
    global $wpdb;

    $data = $wpdb->query("
        SELECT SUM(meta_value)
        FROM $wpdb->postmeta
        WHERE `post_id` = $post_id
                ");
    echo $data;
  ?>

与其他答案相比,我无法弄清楚这有什么问题。任何指针?

谢谢

4

4 回答 4

0

对于 SELECTing,您应该使用$wpdb->get_results()而不是$wpdb->query().

$wpdb->query()“……返回一个与受影响/选择的行数相对应的整数。”

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

于 2012-06-16T22:50:03.537 回答
0

好的,我已经更改了代码以反映上述内容,包括他的封装和使用get_results而不是,query但现在只需获取“数组”作为返回的结果。

        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()也是有效的

于 2012-06-17T08:54:15.687 回答
0

嗯……你连接到数据库了吗?当您在字符串中包含对象属性时,最好将它们括在大括号中,如下所示:

$data = $wpdb->query("SELECT SUM(meta_value)
                      FROM {$wpdb->postmeta}
                      WHERE `post_id` = $post_id
                     ");
于 2012-06-16T20:26:08.227 回答
0

如果它们很复杂,请封装您的 php 变量,因此:

FROM {$wpdb->postmeta}
于 2012-06-16T20:28:42.643 回答