获取以逗号分隔的结果

时间:2019-03-17 09:59:17

标签: php wordpress

我正在尝试在Wordpress(wp简码)中的PHP代码段中用逗号分隔结果。

问题在于只有最后一条记录是从数据库中提取的。

datescanned    host    
2019-03-01     10.1.1.1
2019-03-01     10.1.1.2
2019-03-01     10.1.1.3

我希望我的输出是:

10.1.1.1、10.1.1.2、10.1.1.3

我的原始代码是:

function get_sss1_last_scannedip() {
global $wpdb; 
$current_user = wp_get_current_user();

$result = $wpdb->get_var("SELECT host FROM bitnami_wordpress.sss1_latest WHERE CLIENT ='$current_user->user_login'"); 

 print_r('<div style="color:#fff;text-align:left;font-weight:500;font-size:12px">Target: ' . $result . '</div>');    

} 
add_shortcode('sss1_last_scannedip', 'get_sss1_last_scannedip');

这只会得到最后的结果...

搜索此网站后 How to get the result separated by ,?

我想出了这段代码,但仍然无法正常工作

function get_sss1_last_scannedip() {
global $wpdb; 

$current_user = wp_get_current_user();

$output = array();
foreach ($output as $result)
$output[] = $result = $wpdb->get_var("SELECT host FROM bitnami_wordpress.sss1_latest WHERE CLIENT ='$current_user->user_login'"); 
echo implode(',', $output);


  print_r('<div style="color:#fff;text-align:left;font-weight:500;font-size:12px">Target: ' . $output . '</div>');    

}

add_shortcode('sss1_last_scannedip', 'get_sss1_last_scannedip');

任何帮助将不胜感激!

**更新**

我更改了以下行,现在我得到了所有结果!但是,我也得到了所有重复的:(

$result = $wpdb->get_var("SELECT GROUP_CONCAT(host) as Host FROM bitnami_wordpress.sss1_latest WHERE CLIENT ='$current_user->user_login' order by host group by host");

如何只出现一次相同字段值?

现在我得到了:

10.211.105.11,10.211.105.11,10.211.105.11,10.211.105.11,10.211.105.11,10.211.105.11,10.211.105.11,10.211.105.11,10.211.105.11,10.211.105.11,10.211.105.24,10.211.105.11 ,10.211.105.24,10.211.105.24,10.211.105.24,10.211.105.24,10.211.105.24,10.211.105.24,10.211.105.24,10.211.105.24,10.211.105.24,10.211.105.24,10.211.105.24,10.211.105.24,10.211.105.24 .105.24,10.211.105.24,10.211.105.24,10.211.105.24,10.211.105.24,10.211.105.24,10.211.105.24,10.211.105.24,10.211.105.24,10.211.105.24,10.211.105.24,10.211.105.24.10.211.105.24 ,10.211.105.24,10.211.105.24,10.211.105.24,10.211.105.24,10.211.105.24,10.211.105.24,10.211.105.24,10.211.105.24,10.211.105.25,10.211.105.26,10.211.105.27,192.168.211.131,192.168 .211.131、192.168.211.131、192.168.211.131、192.168.211.131、192.168.211.131、192.168.211.131、192.168.211.131、192.168.211.131、192.168.211.131、192.168.211.131、192.168.211.131、192.168.211.131、192.168.211.131 ,192.168.211.131、192.168.211.131、192.168.211.131、192.168.211.131、192.168.211.131、192.168.211.131、192.1 68.211.131,192.168.211.131,

10.211.105.11多次出现,我只想一次。

我认为GROUP BY主机就足够了。..

...  AND  host = ( SELECT max(host) FROM bitnami_wordpress.sss1_latest )"); 

以上行没有返回任何内容...

帮助!

关于, 娜塔莉(Nathalie)

2 个答案:

答案 0 :(得分:0)

当尝试使用逗号作为分隔符将其插入时,应添加逗号作为分隔符。

"terminate_after":10

答案 1 :(得分:0)

我通过将DICTINCT添加到group_concat找到了解决方案

$result = $wpdb->get_var("SELECT GROUP_CONCAT(DISTINCT host) as host FROM bitnami_wordpress.sss1_latest WHERE CLIENT ='$current_user->user_login'");