Может кто-нибудь увидеть причину, по которой ниже не будет отображать кольцевую диаграмму, как следует? В зависимости от того, где я закрываю время, он будет отображать диаграмму, но только с последней записью из базы данных, пока он печатает две другие записи, которые должны быть вытянуты в тексте как { label: "Ireland", y: 2 }
. Я думаю, что если закрыть сейчас в нужном месте, но ничего не отображается. (я знаю, что должен использовать подготовленные заявления - извинения за неопытность)
<%
Statement stat = null;
ResultSet res = null;
stat = conn.createStatement();
String data = "SELECT COUNT(user_id) AS count_user, user_country FROM user GROUP BY user_country;";
res = stat.executeQuery(data);
while(res.next()){
%>
<tr>
<td><%= res.getInt("count_user")%></td>
<td><%= res.getString("user_country")%></td>
</tr>
<%
}
%>
</tbody>
</table>
<script src="https://canvasjs.com/assets/script/canvasjs.min.js"></script>
<script type="text/javascript">
window.onload = function () {
var chart = new CanvasJS.Chart("chartContainer", {
title:{
text: "Alumni by country"
},
data:
[
{
// Change type to "doughnut", "line", "splineArea", etc.
type: "doughnut",
dataPoints:
<% res = stat.executeQuery(data);
while(res.next()){
%>
[
{ label: "<%= res.getString("user_country")%>", y: <%= res.getString("count_user")%> }
]
<%}%>
}
]
});
chart.render();
};
}
</script>
<body>
<div id="chartContainer" style="height: 300px; width: 100%;"></div>
</body>