提问者:小点点

PHP获取mysql选择中的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
        });
    }));
}
}

URL

http://localhost/r6team/team/team.php?team=stats&team_id=7

共1个答案

匿名用户

在您的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);