WP Sql查询 - 这必须是正确的:-(

时间:2017-08-13 03:31:29

标签: php mysql wordpress

我试图在Wordpress中实际上非常简单的SQL查询。我不知道为什么,但这不起作用: - (

$my_query = ("SELECT DISTINCT meta_value FROM wp_usermeta WHERE meta_key = 'schoolcountry'");
    $vysledek = $wpdb->get_results($my_query);
    foreach ($vysledek as $value){
       echo $value->schoolcountry . ", ";
    }

我在名为wp_usermeta的表中,其中有两列 - “meta_key”和“meta_value”。我需要根据它的“meta_key”来回显meta_value。

所以我的meta_key被称为“schoolcountry”,值应​​该是“CZ”......但是这段代码没有任何空白“,,,,,,”: - (

Anony知道,出了什么问题?

表结构图片:enter image description here

var_dump的Picure:enter image description here

1 个答案:

答案 0 :(得分:0)

查询本身很好。问题在于您尝试显示结果的方式。

您尝试通过其meta_key(学校)访问该值。您尝试访问的媒体资源不存在。您需要改为使用列名(meta_value)。

示例:

foreach ( $vysledek as $value ) {
    echo $value->meta_value . ", ";
}

值得提出的另一点是,通过在循环中为每个值附加逗号,最后会有一个额外的逗号。

value1, value2, value3, 

我很想用implode()来解决这个问题。

echo implode( ', ', array_map( function( $v ) {
    return $v->meta_value;
}, $vysledek );

我们在这里使用array_map返回包含所有元值的新数组。然后,Implode会在没有额外逗号的情况下将它们连接在一起。