我无法弄清楚为什么这么难。 我有一个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
非常感谢任何帮助!
答案 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;
}
答案 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" );
答案 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']. ",";
}
?>