Closed. This question needs to be more
focused。現在、回答を受け付けていません。
この質問を改善したいですか?質問を更新して、
editing this postだけで1つの問題に焦点を合わせます。
4年前に閉鎖されました。
チャートを作成しようとしていますが、MySQLデータベーステーブルから次の形式のJavaScript変数にデータをフェッチする必要があります:
var variable1 = [[1, 19], [2, 11], [3, 14], [4, 16]]
。最初の数値(列)はxになり、2番目はyになります。 MySQLデータベースの私のテーブルは次のようになります(少し簡略化しています)。
column1 column2
1 19
2 11
3 14
4 16
これを行う最も簡単な方法は何ですか?私はこれに新しいです、非常に単純な質問であるかもしれないものを尋ねることのために私を許してください。
編集:
Wartusの回答を参考にして、次のようにコーディングしました。
2つのファイルを作成しました。JavaScriptを使用したHTMLとPHPファイルです。これが私のHTMLファイルです。
<html>
<head>
<title>Title</title>
<link rel="stylesheet" type="text/css" href="css/common.css" />
<script language="javascript" type="text/javascript" src="flot/jquery.js"></script> <!-- jQuery library -->
<script language="javascript" type="text/javascript" src="flot/jquery.flot.js"></script> <!-- Library with charts that I plan to use -->
<script type="text/javascript">
$.ajax({
url : 'serv.php', // my php file
type : 'GET', // type of the HTTP request
success : function(result){
var obj = jQuery.parseJSON(result);
console.log(obj);
}
});
</script>
</head>
<body>
Hi
</body>
</html>
そして、これはHTMLファイルと同じディレクトリにあるserv.phpという名前の私のPHPファイルです。
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "datadb";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT column1, column2 FROM chartdata"; //This is where I specify what data to query
$result = $conn->query($sql);
echo json_encode($result);
?>
コンソールをチェックするとヌルが出力されることを除いて、すべてエラーなしで動作しているようです:
Object {current_field: null, field_count: null, lengths: null, num_rows: null, type: null}
私は何を間違えていますか?
DBで選択を行った後、json形式で回答を返す必要があります(私にとっては、テストする値を持つ配列を作成するだけです)。
あなたのphpファイル(私はserv.phpです):
$data = array([1, 19], [2, 11], [3, 14], [4, 16]);
// replace $data by your code to select in DB
echo json_encode($data);
次に、javascriptコードで応答を取得する必要があります。それを行うには、javascriptまたはjQuery(私の場合はjQuery)で「GET」リクエストを行う必要があります。
これはjsファイルです:
$.ajax({
url : 'serv.php', // your php file
type : 'GET', // type of the HTTP request
success : function(data){
var obj = jQuery.parseJSON(data);
console.log(obj);
}
});
そして
obj
にはデータがあります:

だから今、あなたはあなたのデータを持ち、アクセスするために配列です:
- obj[0] contains [1, 19], obj[0][0] contains 1 and obj[0][1] contains 19
- obj[1] contains [2, 11], obj[1][0] contains 2 and obj[1][1] contains 11 ...
あなたの場合、
variable1
は
obj
と同じです
編集
あなたのDBで:
回答を送信する前に、データを正しく作成する必要があります。したがって、あなたの場合、多次元配列があり、
data
という名前の配列に配列をプッシュすると作成されます。
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "datadb";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT column1, column2 FROM chartdata"; //This is where I specify what data to query
$result = mysqli_query($conn, $sql);
$data = array();
while($enr = mysqli_fetch_assoc($result)){
$a = array($enr['column1'], $enr['column2']);
array_push($data, $a);
}
echo json_encode($data);