第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何從兩個不同的MySQL表中的兩個變量繪制折線圖

如何從兩個不同的MySQL表中的兩個變量繪制折線圖

PHP
catspeake 2023-09-22 16:32:42
我是 php 的新手,并且知道如何在 MySQL 的兩個不同表中為兩個不同的溫度值繪制折線圖。我可以從一個表中獲取數(shù)據(jù)并將其繪制在圖表中,但我無法弄清楚如何從兩個不同的表中獲取兩個臨時值。第一個表1: ID 溫度 1 20第二表2: ID 溫度 1 25數(shù)據(jù).php代碼:<?php  $servername = "localhost"; $database = "test"; $username = "test"; $password = "12345"; $connect = mysqli_connect($servername, $username, $password, $database); if (!$connect) {  die("Connection failed: " . mysqli_connect_error());  }$query = ("SELECT * FROM Table1 UNION SELECT * FROM Table2");$result = mysqli_query($connect, $query);$data = array(); if ($result->num_rows > 0) {  while ($row = $result->fetch_assoc()) {  array_push($data, [$row['time'], floatval($row['temp']), $row['time'], floatval($row['temp'])]);  } }  echo json_encode($data);  mysqli_close($connect);?>如何從兩個表中獲取兩個溫度值?
查看完整描述

1 回答

?
MMMHUHU

TA貢獻1834條經(jīng)驗 獲得超8個贊

首先,我們分別查詢兩個表。

然后合并響應數(shù)據(jù),Table1Table2


<?php

  $servername = "localhost";

  $database = "test";

  $username = "test";

  $password = "12345";


  $connect = mysqli_connect($servername, $username, $password, $database);

  if (!$connect) {

    die("Connection failed: " . mysqli_connect_error());

  }


  $data = array(

    'Table1' => array(),

    'Table2' => array()

  );


  $query = ("SELECT * FROM Table1");

  $result = mysqli_query($connect, $query);

  if ($result->num_rows > 0) {

    while ($row = $result->fetch_assoc()) {

      array_push($data['Table1'], [$row['time'], floatval($row['temp'])]);

    }

  }


  $query = ("SELECT * FROM Table2");

  $result = mysqli_query($connect, $query);

  if ($result->num_rows > 0) {

    while ($row = $result->fetch_assoc()) {

      array_push($data['Table2'], [$row['time'], floatval($row['temp'])]);

    }

  }


  echo json_encode($data);

  mysqli_close($connect);

?>

繪制圖表時,我們只能有一個x軸。

所以我們需要在時間列上連接兩個表。


但首先,谷歌圖表只需要加載一次。

不是每次我們繪制圖表時。

所以我們首先加載谷歌圖表,然后再進行其他操作。


而且我們并不確切知道需要多長時間才能獲取數(shù)據(jù)并繪制圖表。

使用,而不是使用 。setIntervalsetTimeout


google.charts.load('current', {

  packages: ['corechart']

}).then(function () {


  var options = {

    hAxis: {

      title: 'Time'

    },

    vAxis: {

      title: 'Sensors Scale'

    },

    colors: ['#a52714', '#097138']

  };


  var chart = new google.visualization.LineChart(document.getElementById('chart_div'));


  google.visualization.events.addListener(chart, 'ready', function () {

    setTimeout(drawLineColors, 5000);

  });


  drawLineColors();


  function drawLineColors() {

    var data1 = new google.visualization.DataTable();

    data1.addColumn('string', 'Date');

    data1.addColumn('number', 'Temperature');


    var data2 = new google.visualization.DataTable();

    data2.addColumn('string', 'Date');

    data2.addColumn('number', 'Temperature');


    $.ajax({

      url: 'data.php',

      dataType: 'json',

    }).done(function (jsonData) {

      data1.addRows(jsonData.Table1);

      data2.addRows(jsonData.Table2);


      var joinData = google.visualization.data.join(data1, data2, 'full', [[0, 0]], [1], [1]);


      var rowIndex = data1.getNumberOfRows() - 1;

      var lastTime = data1.getValue(rowIndex, 0);

      var lastTemp = data1.getValue(rowIndex, 1);

      var rowIndex2 = data2.getNumberOfRows() - 1;

      var lastTime2 = data2.getValue(rowIndex2, 0);

      var lastTemp2 = data2.getValue(rowIndex2, 1);

      $(".TempStatus").html(lastTemp + " &deg;C");

      $(".Temp2Status").html(lastTemp2 + " &deg;C");


      chart.draw(joinData, options);

    });

  }

});

其他注意事項...

  1. async: false在 ajax 已被棄用的情況下,請改用回調(diào)。done



  2. 也一樣,不需要轉(zhuǎn)換經(jīng)典圖表的選項,

    'line'google.visualization.LineChartgoogle.charts.Linegoogle.charts.Line.convertOptions


查看完整回答
反對 回復 2023-09-22
  • 1 回答
  • 0 關注
  • 101 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號