Извлечение данных из базы данных Oracle и сохранение в массив с использованием переполнения стека

Я пытаюсь получить данные из базы данных, дату-время (timestamp) и значения (число), и сохраняю в массив с помощью 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);
?>

$ 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);
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]