我试图在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知道,出了什么问题?答案 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会在没有额外逗号的情况下将它们连接在一起。