duandai2178 2016-06-08 20:09
浏览 33
已采纳

mysqli查询不使用JSON和Google Charts返回结果

I developed locally and everything worked fine. When I uploaded to the host, some database information is failing to show.

This is aRodgersForm.php where query is made:

<?php
require_once '../login.php';
$conn = new mysqli($hn, $un, $pw, $db);
if ($conn->connect_error) die($conn->connect_error);

var_dump($conn);

$req = mysqli_query($conn,"SELECT * FROM arodgers");

print_r($req);

if(!$req) die('Database access failed: ' . $conn->error);

$CMP = array();

foreach($req as $result) 
{ 
    $CMP[] = array( (int)$result['SEASON'],
                    (int)$result['GP'],
                    (int)$result['CMP'], 
                    (int)$result['ATT'],
                    (double)$result['CMP%'],
                    (double)$result['AVG'],
                    (int)$result['YDS'],
                    (int)$result['TD'],
                    (int)$result['FUM'],
                    (int)$result['INT'],
                    (int)$result['LNG'],
                    (double)$result['QBR'],
                    (double)$result['RAT'],);
}
print_r($CMP);
$CMP = json_encode($CMP);
?>

And this is where the json is requested:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<link rel="stylesheet" href="../css/bootstrap.min.css">
<link rel="stylesheet" href="../css/bootstrap-theme.min.css">
<link rel="stylesheet" href="../css/main.css">
<link rel="stylesheet" href="../css/prettyPhoto.css">
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>

<?php include 'aRodgersForm.php';?>

<script type="text/javascript">
google.load('visualization', '1', {packages: ['controls', 'table']});
google.setOnLoadCallback(init);
function init () {
drawChart();
drawTable(); 
}
function drawTable() {
var data = new google.visualization.DataTable();
data.addColumn('number', 'Season');
data.addColumn('number', 'Games Played');
data.addColumn('number', 'Completions');
data.addColumn('number', 'Attempts');
data.addColumn('number', 'CMP %');
data.addColumn('number', 'AVG YDS');
data.addColumn('number', 'Yards');
data.addColumn('number', 'Touchdowns');
data.addColumn('number', 'Fumbles');
data.addColumn('number', 'Interceptions');
data.addColumn('number', 'Longest Pass');
data.addColumn('number', 'Quarterback Rating');
data.addColumn('number', 'Rating');
data.addRows(JSON.parse(<?php echo json_encode($CMP); ?>));

var table = new google.visualization.Table(document.getElementById('table_div'));

var forYDS = new google.visualization.NumberFormat(
{pattern:'####'});
forYDS.format(data, 0);

table.draw(data, {width: '100%', height: '100%'});
}

function drawChart () {
var data = new google.visualization.DataTable();
data.addColumn('number', 'Season');
data.addColumn('number', 'Games Played');
data.addColumn('number', 'Completions');
data.addColumn('number', 'Attempts');
data.addColumn('number', 'CMP %');
data.addColumn('number', 'AVG YDS');
data.addColumn('number', 'Yards');
data.addColumn('number', 'Touchdowns');
data.addColumn('number', 'Fumbles');
data.addColumn('number', 'Interceptions');
data.addColumn('number', 'Longest Pass');
data.addColumn('number', 'QB Rating');
data.addColumn('number', 'Rating');
data.addRows(JSON.parse(<?php echo json_encode($CMP); ?>));

var columnsTable = new google.visualization.DataTable();
columnsTable.addColumn('number', 'colIndex');
columnsTable.addColumn('string', 'colLabel');
var initState= {selectedValues: []};
// put the columns into this data table (skip column 0)
for (var i = 1; i < data.getNumberOfColumns(); i++) {
columnsTable.addRow([i, data.getColumnLabel(i)]);
// you can comment out this next line if you want to have a default selection other than the whole list
}
// you can set individual columns to be the default columns (instead of populating via the loop above) like this:
initState.selectedValues.push(data.getColumnLabel(1));

var chart = new google.visualization.ChartWrapper({
chartType: 'LineChart',
containerId: 'chart_div',
dataTable: data,
options: {
    title: '',
    width: 1100,
    height: 500,
    fontSize: 19,
    bold:true,
    hAxis: { format: '####' },
    vAxis: {minValue:0}
}
});

var columnFilter = new google.visualization.ControlWrapper({
controlType: 'CategoryFilter',
containerId: 'colFilter_div',
dataTable: columnsTable,
options: {
    filterColumnLabel: 'colLabel',
    ui: {
        label: '',
        allowTyping: false,
        allowMultiple: true,
        allowNone: false,
        selectedValuesLayout: 'belowStacked'
    }
},
state: initState
});

function setChartView () {
var state = columnFilter.getState();
var row;
var view = {
    columns: [0]
};
for (var i = 0; i < state.selectedValues.length; i++) {
    row = columnsTable.getFilteredRows([{column: 1, value: state.selectedValues[i]}])[0];
    view.columns.push(columnsTable.getValue(row, 0));
}
// sort the indices into their original order
view.columns.sort(function (a, b) {
    return (a - b);
});
chart.setView(view);
chart.draw();
}
google.visualization.events.addListener(columnFilter, 'statechange', setChartView);

setChartView();
columnFilter.draw();
}
</script>
</head>

<body>
<nav class="navbar navbar-default navbar-fixed-top">
<ul class="pull-left">
<li><a href="../index.php">Home</a></li>
<li><a href="../enigma.php">News</a></li>
<li><a href="../slideshow.php">News</a></li>
<li><a href="../stats.php">Stats</a></li>
<li><a href="../Schedule.php">Schedule</a></li>
</ul>
<ul class="pull-right">
<li><a href="#">Log In</a></li>
<li><a href="#">Help</a></li>
</ul>
</nav>
<div class="jumbotron" id="statsJumbo">
<div id="statsHeader1">
<div class="col-xs-12 col-md-offset-1" id="statsHeader">
<div class="col-md-6 col-xs-12" id="generalStats">
    <h1>Aaron Rodgers</h1></br>
    <h2>QB - Green Bay Packers | 6'2" - 225lbs</h2></br></br>
    <h4>Drafted &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2005 1st Round, 24th Overall by Green Bay</h4></br>
    <h4> College &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; California 2003-2004</h4></br>
    <h4>Expirience &nbsp;&nbsp;&nbsp;12 Seasons</h4>
</div>
<div class="col-md-2 col-xs-4" id="playerPic">
    <img src="http://a.espncdn.com/combiner/i?img=/i/headshots/nfl/players/full/8439.png&w=350&h=254">
</div>
<div class="col-md-2 col-xs-4" id="playerNumber">
    <p class="statsPlayerNumber">#12</p>
</div>
</div>
</div>
<div class="col-md-12" id="table_div"></div>
<div class="col-md-4 col-md-offset-1" id="chart_div"></div>
<div class="col-md-2 col-md-offset-4" id="colFilter_div"></div>
</div>
<div class="footer col-md-12">
<div class="container text-center">
<p>Copyright (c) 2015 Wyatt Thompson</p>
</div>
</div>
<script type="text/javascript" src="../js/jquery-1.9.1.min.js"></script>
<script src="../js/bootstrap.min.js"></script>
<script src="../js/jquery.js"></script>
</body>
</html>

This is a query from another page that does display results from the echo, but the var_dump($conn) returns object(mysqli)#1 (0) { }:

$query = "SELECT * FROM arodgers WHERE season =(SELECT max(season) FROM arodgers)";
$result = $conn->query($query);
if(!$result) die('Database access failed: ' . $conn->error);
    $rows = $result->fetch_array(MYSQLI_BOTH);
echo <<<_END
    <p>Season: $rows[SEASON]<br />
    Completions: $rows[CMP] <br />
    Attempts: $rows[ATT] <br />
    Yards: $rows[YDS] <br />
    Completion%: $rows[CMP] <br />
    Touchdowns: $rows[TD] </p>

_END;

Live Page So if you look at the stats of the players on the home page the results are all shown, but if you click on the full stats page it is blank. The only results that are not showing are the ones I get with JSON for Google Charts.

  • 写回答

1条回答 默认 最新

  • dongpan8928 2016-06-10 02:20
    关注

    It seems it was a problem with an older version of PHP the free host was using. I moved to a different host with updated php and the website works fine. I developed in 5.6 and the host had 5.2.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效