2013-04-04 36 views
0

以下是我使用的代碼,它的工作原理是隻獲取行和不是列,我將數據導入到Google Chart Tools圖表,並使用第一行作爲這些信息使得信息不準確。使用PHP和JSON從SQLSRV獲取列名

有沒有辦法獲得列名並將其添加到數組?

<?php 
    require "connectioninfo.php"; 

    if ($databaseConnection == false) 
    { 
     echo "<p>Database connection failed...</p>"; 
    } 
    else 
    { 

    $query = "SELECT * FROM avTable"; 
    $statement = sqlsrv_query($databaseConnection, $query); 
    echo $statement; 
    while ($row = sqlsrv_fetch_array($statement)) 
     { 
      $rows[] = array($row['BusinessName'],$row['Hygiene']); 
     } 

     $dataTable = json_encode($rows,JSON_NUMERIC_CHECK); 

    sqlsrv_free_stmt($statement); 
    } 
    sqlsrv_close($databaseConnection);  
?> 

回答

0

你可以做這樣的事情:

while ($row = sqlsrv_fetch_array($statement)) 
{ 
    $arr = array(); 
    for($row as $key => $value){ 
     // $key is your column name 
     // $value is the value of $row[$key] 

     // Copy data on clean array... 
     $arr[$key] = $value; 
    } 

    // Process on column name... 

    $rows[] = $arr; 
} 

編輯:

SELECT * FROM sys.columns WHERE object_id = OBJECT_ID('dbo.yourTableName') 

或者你可以更好的獲得此信息等等,通過查詢Information Schema views得多。

select * from INFORMATION_SCHEMA.COLUMNS 
where TABLE_NAME='yourTable' 

之後,您將檢索$結果[ 「COLUMN_NAME」],$結果[ 「DATA_TYPE」],$結果[ 「TABLE_NAME」],$結果[ 「CHARACTER_MAXIMUM_LENGTH」],等等.. 。

您將有第一個查詢來確定列名稱,然後查詢第二個包含所有數據的查詢。

+0

它不加載網頁只是白色。 – user2225755 2013-04-04 08:06:04

+0

這不是一個工作代碼...只是爲了向您展示解決您的問題的可能方案。你必須適應你的需求。 – Pouki 2013-04-04 08:07:47

+0

我也想將列名添加到我的代碼所在的數組中。當然,我可以用$ key做一些事情,例如$ key ['BusinessName'] + $ row ['BusinessName'],使其包含列名稱? – user2225755 2013-04-04 08:14:03