只需要一个逗号分隔的PHP / MySQL查询列表

时间:2014-06-11 20:14:53

标签: php mysql sql wordpress wordpress-plugin

我无法弄清楚为什么这么难。 我有一个SQL查询,导致一列数字结果,即:

23
45
67
54
34
78
56

使用PHP / MySQL查询,我想简单地生成这些值的逗号分隔列表,这些值可以在别处显示或使用。这是我正在使用的代码

 <?php


global $wpdb;

$sql = <<<SQL
SELECT FK_T_L_INCENTIVES_ID FROM lighting_incentives.WAYPOINT_USER_PICKED WHERE WP_RECOMMENDED = 1 AND FK_USER_ID = 31
SQL;

if (!$sql) { // add this check.
    die('Invalid query: ' . mysql_error());
}

$resultset = array();
$rebates = $wpdb->get_results( $sql, ARRAY_A );
foreach($rebates as $data) {
    $resultset[] = $data;
}
$comma_separated = implode(",", $resultset);

print $comma_separated;
?>

出于某种原因,我不断收到错误

mysql_fetch_array() expects parameter 1 to be resource

非常感谢任何帮助!

5 个答案:

答案 0 :(得分:3)

如果您愿意,可以在SQL中完成...您只需要在返回数字的列上执行此操作GROUP_CONCAT(column_name)并将其全部放在一行中,并使用逗号分离

无需编写多行php代码

答案 1 :(得分:1)

更改

$resultset=array();
$rebates = $wpdb->get_results( $sql );
while ($data = mysql_fetch_array($rebates,MYSQL_NUM)) {
    $resultset[] = $data;
}

$resultset = array();
$rebates = $wpdb->get_results( $sql, ARRAY_A );
foreach($rebates as $data) {
    $resultset[] = $data;
}

More info on how to use get_results()

答案 2 :(得分:1)

试试这个:

$resultset = array();
$rebates = $wpdb->get_results( $sql );
foreach($rebates as $data) {
$resultset[] = (array) $data;
}

$comma_separated = implode(",", $resultset);

echo  $comma_separated;

答案 3 :(得分:0)

$ wpdb不会返回MySQL,请尝试:

$table_ids = $wpdb->get_col( "SELECT id FROM table" ); 

来源:http://codex.wordpress.org/Class_Reference/wpdb

答案 4 :(得分:0)

@JohnRuddell @Machavity

感谢您的帮助。这是最终有效的代码。

<?php


global $wpdb;
$user_ID = get_current_user_id();
$sql = <<<SQL
SELECT FK_T_L_INCENTIVES_ID FROM lighting_incentives.WAYPOINT_USER_PICKED WHERE WP_RECOMMENDED = 1 AND FK_USER_ID = $user_ID
SQL;

if (!$sql) { // add this check.
    die('Invalid query: ' . mysql_error());
}

$resultset = array();
$rebates = $wpdb->get_results( $sql, ARRAY_A );
foreach($rebates as $data) {
     echo $data['FK_T_L_INCENTIVES_ID']. ",";
}

?>