Bagaimana untuk menghantar data JSON dengan cekap dari medan jsonb PostgreSQL ke Javascript?
P粉596161915
P粉596161915 2023-09-12 14:52:26
0
1
543

Saya sedang mencari penyelesaian pintar untuk memproses beberapa data JSON daripada pangkalan data postgresql menggunakan Javascript. Saya tahu saya perlu membaca pangkalan data melalui php dan lulus data sebagai tatasusunan kepada Javascript.

Biasanya anda akan melakukan sesuatu seperti ini:

<?php
$phpArray = array('apple', 'banana', 'orange');
$jsonString = json_encode($phpArray);
?>

<script>
var jsonString = '<?php echo $jsonString ?>';
var jsArray = JSON.parse(jsonString);
</script>

Tetapi data saya sudah disimpan dalam medan postgresql jsonb dalam format JSON. Jadi saya berharap ada cara untuk menghantar tatasusunan dengan lebih cekap supaya PC tidak perlu mengulang data yang sama dua kali.

root@monitor:~ $ sudo -u postgres psql
postgres=# \c monitor
monitor=# SELECT * FROM "drone001";

id |                                             data
---+-----------------------------------------------------------------------------------------------
 1 | {"RX": 13.7, "Speed": 10.1, "Azimuth": 897, "Heading": 125, "DateTime": "2023-03-19 04:14:49"}
 2 | {"RX": 13.4, "Speed": 10.2, "Azimuth": 896, "Heading": 125, "DateTime": "2023-03-19 04:14:47"}
 3 | {"RX": 13.3, "Speed": 10.1, "Azimuth": 896, "Heading": 125, "DateTime": "2023-03-19 04:14:45"}
 4 | {"RX": 13.7, "Speed": 10.1, "Azimuth": 896, "Heading": 127, "DateTime": "2023-03-19 04:14:43"}
 5 | {"RX": 13.1, "Speed": 10.1, "Azimuth": 896, "Heading": 125, "DateTime": "2023-03-19 04:14:41"}
[...]

Kod ini tidak berfungsi tetapi harus menunjukkan secara kasar apa yang ada dalam fikiran saya.

<?php
  require_once 'pgsql.php';

  $db = new database();
  $res = $db->select('drone001');
  $jsondata = array();
  while ($ds = pg_fetch_object($res)) {
    $jsondata[] = $ds->data;
  }
?>


<script type="text/javascript">
  var jsArray = JSON.parse('<?php echo $jsondata ?>');
  console.log(jsArray);
</script>

Alangkah baiknya jika seseorang dapat menunjukkan saya ke arah yang betul.

P粉596161915
P粉596161915

membalas semua(1)
P粉744831602

Baiklah, saya berasa agak bodoh hari ini. Saya dapati penyelesaiannya, tidak perlu mencipta tatasusunan baru, hanya menggabungkan semua rentetan bersama-sama.

<?php
  require_once 'pgsql.php';

  $db = new database();
  $res = $db->select('drone001');
  while ($ds = pg_fetch_object($res)) {
    $jsondata .= $ds->data . ",";
  }
  $jsondata = "[" . rtrim($jsondata, ",") . "]";
?>

<script type="text/javascript">
  var jsArray = JSON.parse('<?php echo $jsondata ?>');
  console.log(jsArray);
</script>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!