2017-03-08 9 views
0

PHPを使用してMSSQLデータベースからデータを取得していますが、これはJSONにフォーマットしたいので、これはチャートを開発する唯一の方法です(の図表 )。より多くの列を含むJSON出力

これは私のコードです:

<?php 
    header('Content-Type: applicaton/json'); 
    $serverName = "server\sqlexpress"; 
    $connectionInfo = array("Database"=>"myDB", "UID"=>"myUID", "PWD"=>"myPWD"); 

    $conn = sqlsrv_connect($serverName, $connectionInfo); 
    if($conn==true) { 
//echo "Connection established.<br />"; 
    } 
    else 
    { 
    echo "Connection could not be established.<br />"; 
    die(print_r(sqlsrv_errors(), true));} 

//QUERY 

$sql = "SELECT FIRSTNAME, LASTNAME, JOBTYPE from directory ORDER BY JOBTYPE"; 

$stmt = sqlsrv_query($conn, $sql);//, $params); 

if($stmt) { 
    // echo "Statement executed.<br>\n"; 
} 
else 
{ 
    echo "error in statement execution.\n"; 
    die (print_r (sqlsrv_errors(), true)); 
} 

//PRINT ROWS 
$data = array(); 
while ($row=sqlsrv_fetch_array($stmt, SQLSRV_FETCH_BOTH)) 
{ 
$data[] = $row; 
//echo $row['LASTNAME']. ' | ' .$row['FIRSTNAME']. ' | ' .$row['JOBTYPE']. "<br>" ; 
} 
echo json_encode($data); 
?> 

私は、出力データは次のようにフォーマットされるだろうと推測:

[{"LASTNAME": "MEINE", 
    "FIRSTNAME": "KLAUS", 
    "JOBTYPE": "LEADVOICE" 
}, 
{"LASTNAME": "SCHENKER", 
    "FIRSTNAME": "RUDOLF", 
    "JOBTYPE": "RYTHMGUITAR" 
}] 

しかし、それは次のように出力されます:

[{"0":"KLAUS", 
"FIRSTNAME":"KLAUS", 
"1":"MEINE", 
"LASTNAME":"MEINE", 
"2":" LEADVOICE", 
"JOBTYPE":" LEADVOICE" 
}, 
{"0":"RUDOLF", 
"FIRSTNAME":"RUDOLF", 
"1":"SCHENKER", 
"LASTNAME":"SCHENKER", 
"2":" RYTHMGUITAR", 
"JOBTYPE":" RYTHMGUITAR" 
}] 

何なぜ起きているのですか?

ありがとうございます!

答えて

0

はちょうどそれが魅力のように働いた

$row_data['LASTNAME'] = $row['LASTNAME']; 
$row_data['FIRSTNAME] = $row['FIRSTNAME']; 
$row_data['JOBTYPE'] = $row['JOBTYPE']; 

array_push($data,$row_data); 
+0

でライン

$data[] = $row; 

下に置き換え、どうもありがとうございました! 別のフィールドを持つ別のテーブルを取得する場合、私はあなたの例のようにする必要がありますか? –

+0

はい、データベーステーブルから少数の値を保存する場合は同じ操作を行います。 – Umar

関連する問題