0
global $wpdb, $bp;
$result = $wpdb->get_results("SELECT user_id FROM wp_bp_xprofile_data WHERE value = '$_POST[language]' OR value = '$_POST[budget]' OR value = '$_POST[style]'LIMIT 0 , 30");
print_r($result);

输出是:

Array ( [0] => stdClass Object ( [user_id] => 2 )
        [1] => stdClass Object ( [user_id] => 2 ) 
        [2] => stdClass Object ( [user_id] => 2 ) 
        [3] => stdClass Object ( [user_id] => 4 ) )

我希望该值作为逗号分隔的字符串。

4

4 回答 4

1

get_results()将返回一个对象。您可以简单地遍历对象并使用对象表示法访问 id,如下所示:

$arr = array();
foreach ($result as $k => $id) {
    $arr[] = $id->user_id;
}
$string = implode(',', $arr);

或者,您可以get_col()改用:

$result = $wpdb->get_col("SELECT user_id 
FROM wp_bp_xprofile_data 
WHERE value = '$_POST[language]' OR value = '$_POST[budget]' 
OR value = '$_POST[style]'LIMIT 0 , 300");

现在,要获取逗号分隔的字符串,请使用implode()

$string = implode(',', $result);
于 2013-11-01T19:59:27.910 回答
0

当你必须得到一列时使用wpdb的 get_col

$result = $wpdb->get_col("SELECT user_id FROM wp_bp_xprofile_data WHERE value = '$_POST[language]' OR value = '$_POST[budget]' OR value = '$_POST[style]'LIMIT 0 , 30");

echo  implode(",",$result);
or 

echo  join(",",$result);
于 2013-11-01T19:57:28.290 回答
0

这是一个可能的解决方案;

<?php 
    global $wpdb, $bp;
    $result = $wpdb->get_results("SELECT user_id FROM wp_bp_xprofile_data WHERE 
                value = '$_POST[language]' OR value = '$_POST[budget]' 
                OR value = '$_POST[style]'LIMIT 0 , 30");
    $str_ids = '';
    foreach($result as $r) {
         $str_ids .= ('' == $str_ids) ? '' : ', ';
         $str_ids .= $r->user_id;
    }
    print_r($str_ids);
于 2013-11-01T20:00:42.140 回答
0

试试这个:

$str=implode(",",json_decode(json_encode($result),true));
于 2013-11-01T20:12:39.687 回答