2015-09-22 51 views
1

我試圖獲取從數據庫中的數據的陣列,日期與時間(時間戳)和值(數),使用PHP存儲成陣列。獲取數據並存儲到使用PHP

這裏是我在數據庫中的數據如下=

WD         DT 

25-FEB-15 12.14.00.000000 AM 15.739993 

25-FEB-15 12.23.00.000000 AM 13.698263 

25-FEB-15 12.43.00.000000 AM 13.214383 

fetch.php

<?php 
include("md.php"); 
$sql = "SELECT * from datatable"; 
$result =oci_parse($conn, $sql); 
$r=oci_execute($result); 
$arr = array(); 
$row=oci_num_rows($stid); 
$arr[0]=array('wd','dt'); 

for($i=1; $i<($row+1); $i++) 
{ 
    $arr[$i]= array(substr(oci_result($result, $i-1, "wd"),0,18),(float)oci_result($result,$i-1,"dt")); 
    //$arr[$i]= array(substr(oci_result($result, $i-1, "wd"),0,18),(int)oci_result($result,$i-1,"dt")); 

} 
echo json_encode($arr); 
//print_r($arr); 
?> 

$編曲得到以下的輸出: [ 「WD」],[ 「DT」 ]

Q1。我爲什麼沒有得到數據的休息嗎?我在哪裏做錯了?

但是,如果使用

while($row = oci_fetch_row($stid)){ 

    $arr[] = $row; 
} 

如果我使用json_encode然後=

[["25-FEB-15 12.14.00.000000 AM","15.739993"],["25-FEB-15 12.23.00.000000 AM","13.698263"],["25-FEB-15 12.43.00.000000 AM","13.214383"],.... 

如果我使用

while($row = oci_fetch_array($stid,OCI_ASSOC)){ 

    $arr[] = $row; 
} 

如果我使用json_encode然後=

[{"WD":"25-FEB-15 12.14.00.000000 AM","DT":"15.739993"},{"WD":"25-FEB-15 12.23.00.000000 AM","DT":"13.698263"},........] 

我想要的輸出如下所示=

[["25-FEB-15 12.14.00 AM",15.739993],["25-FEB-15 12.23.00 AM",13.698263],["25-FEB-15 12.43.00 AM",13.214383],....] 

Q2。我怎樣才能得到它? 請幫助

回答

1

因爲數據是在關聯數組你得到的列名,爲每行每列中的數據返回給你返回。因此,這是$row

"WD" => "25-FEB-15 12.14.00.000000 AM", "DT" => "15.739993" 

被退回所有你需要做的是從各行挑出來的數據,而忽略了關鍵,像這樣: -

$arr = array(); 

while($row = oci_fetch_array($stid,OCI_ASSOC)){ 

    $arr[] = array($row['WD'] , $row['DT']); 
} 

echo json_encode($arr); 
+0

感謝您的答覆。現在我想出瞭如何獲得'DT'值作爲我所需的輸出。非常感謝 – ARoy

相關問題