为了账号安全,请及时绑定邮箱和手机立即绑定

如何从 2 个表中获取数据并显示到 1 个图表中

如何从 2 个表中获取数据并显示到 1 个图表中

萧十郎 2023-12-19 15:58:08
我有两张不同的桌子。表1:食物(有食物名称字段)表2:food_details(其中包含食物的数量字段)两者都通过食物的“id”连接起来。我创建了一个 Chartjs 图表来按图表显示食物的数量,因此现在该图表已连接到表 2,并使用 id 标签显示我的数量。但我的问题是,我想将食物的名称显示为带有数量的标签,但该字段位于表 1 中,我不知道如何获取和显示而不是食物的 id,或者即使这是可能的。这是我的代码数据:<?php header('Content-Type: application/json');define('DB_HOST', 'localhost');define('DB_USERNAME', 'root');define('DB_PASSWORD', '');define('DB_NAME', 'chartjs');$mysqli = new mysqli(DB_HOST, DB_USERNAME, DB_PASSWORD, DB_NAME);if(!$mysqli){    die("Connection failed: " . $mysqli->error);}$query = sprintf("SELECT id, available_quantity FROM food_details ORDER BY id");$result = $mysqli->query($query);$data = array();foreach ($result as $row) {    $data[] = $row;}$result->close();$mysqli->close();print json_encode($data); ?>图表脚本<script type="text/javascript">$(document).ready(function(){    $.ajax({        url: "http://localhost/chartjs/data.php",        method: "GET",        success: function(data) {            console.log(data);            var id = [];            var available_quantity = [];            for(var i in data) {                id.push("id" + data[i].id);                available_quantity.push(data[i].available_quantity);            }            var chartdata = {                labels: id,                datasets : [                    {                        label: 'Food Storage',                        backgroundColor: 'rgba(200, 200, 200, 0.75)',                        borderColor: 'rgba(200, 200, 200, 0.75)',                        HoverBackgroundColor: 'rgba(200, 200, 200, 1)',                        HoverBorderColor: 'rgba(200, 200, 200, 1)',                        data: available_quantity                    }                ]            };            var ctx = $("#mycanvas");            var barGraph = new Chart(ctx, {                type: 'horizontalBar',                data: chartdata            });        },         error: function(data) {            console.log(data);        }    });});</script> 提前致谢
查看完整描述

1 回答

?
千巷猫影

TA贡献1829条经验 获得超7个赞

您似乎正在寻找join:


SELECT f.name, fd.available_quantity 

FROM food_details fd

INNER JOIN food f on f.id = fd.id

ORDER BY fd.id

此查询从 表中检索每个 的 name,并将其放在第一列中的 。行仍然按 排序 - 如果您想要的话,可以将其更改为 。idfoodididname


查看完整回答
反对 回复 2023-12-19
  • 1 回答
  • 0 关注
  • 88 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信