0

Google (円) チャートと MYSQL データベースの統合に苦労しています。「mxp937_AddStakeholder」という名前のデータベースからデータを取得しようとしています。具体的には、列名は「ProjectRoles」であり、たとえば Manager、Full Time Stakeholder、Software Developer などの文字列データが含まれています。GUI デザイナー。最終的には、このデータを円グラフに表示して、たとえばユーザーの 5% がソフトウェア開発者であるなどの情報を表示する必要があります。

私が得るエラーは次のとおりです: 警告: mysql_fetch_assoc(): 提供された引数は、有効な MySQL 結果リソースではありません。

ご意見をお聞かせください?

<?php
$con=mysql_connect("localhost","username","password") or die("Failed to connect with database!");
mysql_select_db("mxp937_AddStakeholder", $con); 
$sth = mysql_query("SELECT projectroles FROM mxp937_AddStakeholder");
$rows = array();
//flag is not needed
$flag = true;
$table = array();
$table['cols'] = array(

array('label' => 'Project Roles', 'type' => 'string'),

);

$rows = array();
while($r = mysql_fetch_assoc($sth)) {
$temp = array();
// the following line will used to slice the Pie chart
$temp[] = array('v' => (string) $r['ProjectRoles']); 

//Values of the each slice
$temp[] = array('v' => (int) $r['percentage']); 
$rows[] = array('c' => $temp);
}

$table['rows'] = $rows;
$jsonTable = json_encode($table);
//echo $jsonTable;
?>

<html>
<head>
<!--Load the AJAX API-->
<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>
<script type="text/javascript">

// Load the Visualization API and the piechart package.
google.load('visualization', '1', {'packages':['corechart']});

// Set a callback to run when the Google Visualization API is loaded.
google.setOnLoadCallback(drawChart);

function drawChart() {

  // Create our data table out of JSON data loaded from server.
  var data = new google.visualization.DataTable(<?=$jsonTable?>);
  var options = {
       title: 'Project Roles',
      is3D: 'true',
      width: 800,
      height: 600
    };
  // Instantiate and draw our chart, passing in some options.
  //do not forget to check ur div ID
  var chart = new google.visualization.PieChart(document.getElementById('chart_div'));
  chart.draw(data, options);
}
</script>

4

2 に答える 2

0

これはデータベースの名前でなければなりません ("mxp937_AddStakeholder")

mysql_select_db("mxp937_AddStakeholder", $con);

これは、結果を選択するテーブルの名前である必要があります

$sth = mysql_query("SELECT * FROM table_name");
于 2013-03-15T21:28:03.110 に答える
0

クエリの実行で発生したエラーをエコーし​​てみましたか? クエリが正常に実行されない場合 (たとえば、構文の問題がある場合)、操作する結果が得られないためです。試す

or die(mysql_error());

クエリを実行した後。

また、mysql_* 関数の使用をやめて mysqli_* 関数の使用を開始するか、PDO を使用することができます。mysql_* 関数は廃止予定です。

于 2013-03-15T21:24:42.973 に答える