Sql 我无法在d3中可视化数据

Sql 我无法在d3中可视化数据,sql,d3.js,Sql,D3.js,我正在学习D3,并尝试从数据库加载数据,并将其可视化到HTML页面上 我的PHP代码: 我的HTML代码: 我认为问题可能是JSON数据,其中“4”是字符串,而不是数字。因此,我将数据源[{COUNTJOB:4}]更改为[{COUNTJOB:4}]。但是,在HTML页面中,条形图仍然没有显示。我认为问题应该是javascript。我检查了每一个单词,但没有发现任何问题 顺便说一下。如果从connect.php加载数据,如何将字符串“4”转换为数字4?您的JSON将导致属性名COUNTJOB出现问

我正在学习D3,并尝试从数据库加载数据,并将其可视化到HTML页面上

我的PHP代码:

我的HTML代码:

我认为问题可能是JSON数据,其中“4”是字符串,而不是数字。因此,我将数据源[{COUNTJOB:4}]更改为[{COUNTJOB:4}]。但是,在HTML页面中,条形图仍然没有显示。我认为问题应该是javascript。我检查了每一个单词,但没有发现任何问题


顺便说一下。如果从connect.php加载数据,如何将字符串“4”转换为数字4?

您的JSON将导致属性名COUNTJOB出现问题。在这里:

这里您将作业传递给函数d.COUNT,但d.COUNT不是函数或数据的属性。这将生成一个错误并导致不绘制任何内容。相反,您可以称您的伯爵为:

 SELECT COUNT(JOB) as jobcount ...
并使用d.jobcount访问它

其次,如果您使用的是d3v5或d3v6,那么您使用的d3.json就不正确。您使用的模式对d3v4及更早版本有效,但从d3v5起,您需要使用以下格式:

 d3.json("connect.php").then(function (data) {

    ...

 })
否则,您的javascript将正常工作:下面是一个javascript硬编码的工作示例,用于将数据放入代码段中:

var data=[{jobcount:4}] var canvas=d3.selectbody.appendsvg .宽度,500 .身高,500 canvas.selectAllrect .数据 进来 .appendrect .attrwidth,函数d{返回d.jobcount*100;} .身高48 .attry,函数d,i{返回i*50;} .黑色
如果您刚刚开始学习PHP,那么您应该学习PDO而不是mysqli。PDO更简单,更适合初学者。从这里开始&您需要.datadata而不是.attrdata。我现在检查并更正它。但是,它仍然无法工作。请在var canvas=…-之前尝试console.logdata你看到你的数据了吗?非常感谢。我终于跑起来了哈哈。我没有足够的声誉,所以我不能投票。但是你的回答很有帮助!
<script>
    
        d3.json("connect.php",function (data) {
        
            var canvas = d3.select("body").append("svg")
                .attr("width", 500)
                .attr("height", 500)
                
            canvas.selectAll("rect")
                .data(data)
                .enter()
                    .append("rect")
                    .attr("width", function(d){ return d.COUNT(JOB) * 100;})
                    .attr("height",48)
                    .attr("y", function (d, i){ return i * 50;})
                    .attr("fill", "black")
        
        })
    
</script>
 function(d){ return d.COUNT(JOB) * 100;})
 SELECT COUNT(JOB) as jobcount ...
 d3.json("connect.php").then(function (data) {

    ...

 })