PHP无法从mysql查询中获取列名

时间:2013-09-18 09:40:27

标签: php mysql

我正在尝试从我的sql Query中获取数据,但是我收到了错误的数据所以任何人都可以告诉我如何正确地执行此操作。

这是我的代码

$result = mysql_query("select
       CONCAT_WS(',',
                 (case when Q1 is not null then 'Q1' else '' end),
                 (case when Q2 is not null then 'Q2' else '' end),
                 (case when Q3 is not null then 'Q3' else '' end),
                 (case when Q4 is not null then 'Q4' else '' end),
                 (case when Q5 is not null then 'Q5' else '' end),
                 (case when Q6 is not null then 'Q6' else '' end),
                 (case when Q7 is not null then 'Q7' else '' end),
                 (case when Q8 is not null then 'Q8' else '' end),
                 (case when Q9 is not null then 'Q9' else '' end)
                ) as NonNullColumns
from $day
where `user` = '$user'") or die(mysql_error());
//echo $result;

if (mysql_num_rows($result) > 1) {
    // looping through all results
    // products node
    $response["Q"] = array();

    while ($row = mysql_fetch_assoc($result)) {
        // temp user array
        $qnumber = array();
        $qns= array();
        $qnumber["Q".$i] = $row["$Q"];
            $i = $i + 1;
        // push single product into final response array
        array_push($response["Q"], $qnumber);
 }
}

我从SQl查询中获得以下输出

NonNullColumns
Q1,Q2,Q3,,,,,,
Q1,Q2,Q3,,,,,,
Q1,Q2,Q3,,,,,,
Q1,Q2,Q3,,,,,,
Q1,Q2,Q3,,,,,,
Q1,Q2,Q3,,,,,,

我需要从我的SQl查询输出中获取值Q1,Q2,Q3但是我能够获取

{"Q":[{"Q":null},{"Q1":null},{"Q2":null},{"Q3":null},{"Q4":null},{"Q5":null}],"success":1} 

那么任何人都可以告诉我如何获得关注输出

{"Q":[{Q1},{Q2},{Q3}],"success":1} 

1 个答案:

答案 0 :(得分:0)

您只有一列,因为您已连接所有数据。 因此,不必引用$row["$Q"],而是必须explode(',', $row['NonNullColumns'])并将非空字符串添加到数组