javascript - PHP在mysql SELECT中获取URL值
问题描述
在我当前的项目中,我想使用 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
});
}));
}
}
网址
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);
推荐阅读
- c# - 为什么 System.IO.Ports.SerialPort.GetPortNames() 会产生 DirectoryNotFoundException?
- angular - 扩展类的角度共享组件抱怨未知属性
- c# - 使用未分配参数编译器错误,对于从函数输出参数接收的变量?
- c++ - 抽象基类以基类为类型创建派生类的实例
- c - 从c中的文件中检索标题
- reactjs - 如何从api加载数据并使用map函数异步加载组件
- c - 获取除 void * 之外的不兼容指针类型警告
- python - Python即使在循环之后也保持得分
- regex - 使用informatica表达式中的正则表达式提取xml的两个标签之间的数据
- c - 打印整个指针