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

1列だけ取得したい場合は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

hier は可能な解決策です。

<?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 に答える