在我当前的项目中,我想用chart.js在饼图中显示统计数据,但是它们对于我页面上的每个团队都是不同的。
我试图通过URL在playerone.PHP中的Select中给出WHERE值,但似乎没有起作用,因为这个PHP文件是由一个JS函数触发的。 我已经通过isset get传递了URL上的team_id,但这似乎不起作用。
如何将URL上的team_id值传递给查询?
playerone.php
if(isset($_GET['team_id'])) {
$team_id = $_GET['team_id'];
}
$query = "SELECT * FROM user WHERE team_id = 7 LIMIT 1";
$select_team = mysqli_query($connection, $query);
$row = mysqli_fetch_assoc($select_team);
$user_id = $row['user_id'];
$query = "SELECT SUM(game_stats.match_stats_kills) AS Kills, SUM(game_stats.match_stats_deaths) AS Deaths FROM game_stats WHERE game_stats.user_id = $user_id";
$select_kd = mysqli_query($connection, $query);
$data = array();
foreach($select_kd as $row) {
$data[] = $row;
}
mysqli_close($connection);
echo json_encode($data);
stats.js
$(document).ready(function() {
showData();
});
function showData() {
{
($.post("includes/stats/playerOne.php",
function(data) {
var kills = [];
var deaths = [];
for(var i in data) {
kills.push(data[i].Kills)
deaths.push(data[i].Deaths);
}
var pieChartData = {
labels: [
'Kills', 'Deaths'
],
datasets: [
{
backgroundColor: ['#f56954', '#00c0ef'],
data: [kills, deaths]
}
]
};
var pieChartTarget = $('#playerKD').get(0).getContext('2d');
var pieChart = new Chart(pieChartTarget, {
type: 'pie',
data: pieChartData
});
}));
}
}
URL
http://localhost/r6team/team/team.php?team=stats&team_id=7
在您的JS中,您需要发送一个GET请求,并为ID的动态性留出空间。 stats.js应该如下所示:
$(document).ready(function() {
showData(7);
});
function showData(teamId) {
{
($.get("includes/stats/playerOne.php?team_id=" + teamId,
function(data) {
var kills = [];
var deaths = [];
for(var i in data) {
kills.push(data[i].Kills)
deaths.push(data[i].Deaths);
}
var pieChartData = {
labels: [
'Kills', 'Deaths'
],
datasets: [
{
backgroundColor: ['#f56954', '#00c0ef'],
data: [kills, deaths]
}
]
};
var pieChartTarget = $('#playerKD').get(0).getContext('2d');
var pieChart = new Chart(pieChartTarget, {
type: 'pie',
data: pieChartData
});
}));
}
}
playerone.php应该如下所示:
$team_id = 0;//initialize team ID
if(isset($_GET['team_id'])) {
$team_id = $_GET['team_id'];
}
//double quotes are important so the $team_id variable will be interpreted to the value it holds
$query = "SELECT * FROM user WHERE team_id = $team_id LIMIT 1";
$select_team = mysqli_query($connection, $query);
$row = mysqli_fetch_assoc($select_team);
$user_id = $row['user_id'];
$query = "SELECT SUM(game_stats.match_stats_kills) AS Kills, SUM(game_stats.match_stats_deaths) AS Deaths FROM game_stats WHERE game_stats.user_id = $user_id";
$select_kd = mysqli_query($connection, $query);
$data = array();
foreach($select_kd as $row) {
$data[] = $row;
}
mysqli_close($connection);
echo json_encode($data);