在chart.js和PHP中循环多行作为标签和数据

在chart.js和PHP中循环多行作为标签和数据,php,chart.js,Php,Chart.js,我想使用chart.js创建一个给定股票价格的图表。 标签和数据是使用$select\u查询中的数据获取的。在这里,我创建了一个动态函数,从URL获取股票代码名称: 我尝试使用while循环遍历行,但失败了 var ctx=document.getElementById'myChart'.getContext'2d'; var myChart=新的Chartctx{ 键入:“行”, 数据:{ //标签:[“红色”、“蓝色”、“黄色”、“绿色”、“紫色”、“橙色”], 标签:[], 数据集:[{

我想使用chart.js创建一个给定股票价格的图表。 标签和数据是使用$select\u查询中的数据获取的。在这里,我创建了一个动态函数,从URL获取股票代码名称:

我尝试使用while循环遍历行,但失败了

var ctx=document.getElementById'myChart'.getContext'2d'; var myChart=新的Chartctx{ 键入:“行”, 数据:{ //标签:[“红色”、“蓝色”、“黄色”、“绿色”、“紫色”、“橙色”], 标签:[], 数据集:[{ 标签:“投票数”, //数据:[12,19,3,5,2,3], 数据:[], 背景颜色:“rgba255、99、132、0.2”, 边框颜色:“rgb75、192、192”, 边框宽度:1 }] }, 选项:{ 比例:{ y:{ 贝吉纳泽罗:是的 } } } }; 上面的代码与我的下表不符。创建表时,while循环实际上是有效的。在chartjs中为标签和数据执行while循环时,我尝试使用相同的想法,但没有成功

名称 价格 信号日期
尝试用PHP代码动态构建JS数组从来都不是一个好主意。相反,在PHP中构建数组并使用json_encode将其传递给JS,甚至更好,使用模板引擎并将其与数据属性一起传递,但这是另一个主题吗

另外,您正在尝试多次循环结果,我不确定这是否可行。我已经很久没有使用本机mysqli函数了

首先,获取数据并构建需要在PHP中传递到Chart.js的数组:

$statement=$con->prepareSELECT Date\u buy,Name\u buy,Price\u buy FROM daily\u buy\u orders,其中Name\u buy=?; $statement->bind_参数',$ticker;/'s'指定变量类型=>'string' $statement->execute; $result=$statement->get\u result; $dates=[]; 美元价格=[]; 而$row=$result->fetch\u assoc{ $dates[]=$row['Date\u buy']; $prices[]=$row['Price\u buy'] } 现在,您可以更清晰地将其传递到图表:

var myChart=新的Chartctx{ 键入:“行”, 数据:{ 标签:, 数据集:[{ 标签:“投票数”, 数据:, }] } } 我没有测试过这个,但它给了你一个想法

编辑:返回以下输出: LowArrayloWarray LowArrayloWarray。其中Name_buy较低,意味着第二个print语句被窃听。如何解决这个问题

    $arrDates = array();
    $arrPrices = array();
    $arrNames = array();
    // $dates = [];
    // $prices = [];
    // $names = [];
    $result = $select_query->get_result();
    while ($row = mysqli_fetch_assoc($result)) {
        $arrDates[] = $row['Date_buy'];
        $arrPrices[] = $row['Price_buy'];
        $arrNames[] = $row['Name_buy'];
        print($row['Name_buy']);
        print($arrNames);
        }

尝试用PHP代码动态构建JS数组从来都不是一个好主意。相反,在PHP中构建数组并使用json_encode将其传递给JS,甚至更好,使用模板引擎并将其与数据属性一起传递,但这是另一个主题吗

另外,您正在尝试多次循环结果,我不确定这是否可行。我已经很久没有使用本机mysqli函数了

首先,获取数据并构建需要在PHP中传递到Chart.js的数组:

$statement=$con->prepareSELECT Date\u buy,Name\u buy,Price\u buy FROM daily\u buy\u orders,其中Name\u buy=?; $statement->bind_参数',$ticker;/'s'指定变量类型=>'string' $statement->execute; $result=$statement->get\u result; $dates=[]; 美元价格=[]; 而$row=$result->fetch\u assoc{ $dates[]=$row['Date\u buy']; $prices[]=$row['Price\u buy'] } 现在,您可以更清晰地将其传递到图表:

var myChart=新的Chartctx{ 键入:“行”, 数据:{ 标签:, 数据集:[{ 标签:“投票数”, 数据:, }] } } 我没有测试过这个,但它给了你一个想法

编辑:返回以下输出: LowArrayloWarray LowArrayloWarray。其中Name_buy较低,意味着第二个print语句被窃听。如何解决这个问题

    $arrDates = array();
    $arrPrices = array();
    $arrNames = array();
    // $dates = [];
    // $prices = [];
    // $names = [];
    $result = $select_query->get_result();
    while ($row = mysqli_fetch_assoc($result)) {
        $arrDates[] = $row['Date_buy'];
        $arrPrices[] = $row['Price_buy'];
        $arrNames[] = $row['Name_buy'];
        print($row['Name_buy']);
        print($arrNames);
        }

我打算提出与下面刚刚发布的答案相同的建议。。您可以使用json_encode,也可以尝试使用标签:[我发现了这个示例,他们首先创建Variablels数组,然后将数据附加到数组中。我的建议与下面发布的答案相同..您可以使用json_encode,也可以尝试使用标签:['我发现这个示例中,他们首先创建variabls数组,然后向其中添加数据。我通过添加建议的一些结果编辑了您的条目。它无法将数据添加到我的数组变量。我通过添加建议的一些结果编辑了您的条目。 它无法将数据添加到我的数组变量中。