使用两个SQL表获取Javascript的JSON数据
我使用SQL查询从数据库中获取数据,并将其作为JSON数据返回,以发送到Javascript文件。我使用数据库中的两个不同表进行SQL查询。如何连接这两个表,或者需要使用什么代码将两个表中的数据存储为一个JSON数据发送到Javascript文件 我想返回要在Javascript文件的表中显示的团队名称和省份名称。当我在MySQL Workbench中使用SQL查询时,它会获得正确的数据,但不适用于Teams.php。我想在Javascript文件的Teams列中显示团队名称,在provides列中显示省份名称 JSON数据当前将Teams.php中的数据显示为{“Teams”:[{“name”:“Ulster”},{“name”:“Ulster”},{“name”:“Ulster”},{“name”:“Leinster”}]},这是错误的,因为它只显示一个名称,而且它也获取了错误的数据,因为它们是省名 我希望它显示为{“团队”:[{“名称”:“多尼格尔”,“省”:“阿尔斯特”},{“名称”:“德里”,“省”:“阿尔斯特”},{“名称”:“向下”,“省”:“阿尔斯特”},{“名称”:“都柏林”,“省”:“莱斯特”},因为它显示了团队名称和省名 Teams.html使用两个SQL表获取Javascript的JSON数据,javascript,php,mysql,json,Javascript,Php,Mysql,Json,我使用SQL查询从数据库中获取数据,并将其作为JSON数据返回,以发送到Javascript文件。我使用数据库中的两个不同表进行SQL查询。如何连接这两个表,或者需要使用什么代码将两个表中的数据存储为一个JSON数据发送到Javascript文件 我想返回要在Javascript文件的表中显示的团队名称和省份名称。当我在MySQL Workbench中使用SQL查询时,它会获得正确的数据,但不适用于Teams.php。我想在Javascript文件的Teams列中显示团队名称,在provides
<html>
<head>
<script type="text/javascript" src="Teams.js">
</script>
</head>
<body>
<h2>Teams</h2>
<table>
<tr>
<td>Enter team name: <input id="team" type="text" /></td>
</tr>
</table>
<hr>
<div id="myDiv"></div>
</body>
</html>
团队
输入团队名称:
Teams.js
var xmlhttp;
window.onload=function(){
init();
}
function init()
{
// call getAjaxData() as the user types text
document.getElementById("team").onkeyup=function(){
getAjaxData();
}
}
function getAjaxData()
{
if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
else
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
// put the text typed into a JavaScript variable 'teamname'
var teamname=document.getElementById("team").value;
console.log(teamname);
xmlhttp.onreadystatechange = showData;
// make Ajax request using the text typed OR you could first request "Teams.json"
xmlhttp.open("GET","Teams.php?name="+teamname, true);
xmlhttp.send();
}
function showData()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
var data = JSON.parse(xmlhttp.responseText);
// build a html table with the data returned
var output = '<table border=1>';
output += '<th>Team</th><th>Province</th>';
for (var i=0;i<data.teams.length;i++) {
output += '<tr><td>'+ data.teams[i].name +'</td><td>' + data.teams[i].province +'</td></tr>';
}
output += '</table>';
// add output to div
document.getElementById("myDiv").innerHTML=output;
}
}
var-xmlhttp;
window.onload=function(){
init();
}
函数init()
{
//在用户键入文本时调用getAjaxData()
document.getElementById(“团队”).onkeyup=function(){
getAjaxData();
}
}
函数getAjaxData()
{
if(window.XMLHttpRequest)
{
xmlhttp=新的XMLHttpRequest();
}
其他的
{
xmlhttp=新的ActiveXObject(“Microsoft.xmlhttp”);
}
//将键入的文本放入JavaScript变量“teamname”
var teamname=document.getElementById(“团队”).value;
console.log(团队名称);
xmlhttp.onreadystatechange=showData;
//使用键入的文本发出Ajax请求,或者您可以先请求“Teams.json”
open(“GET”、“Teams.php?name=“+teamname,true”);
xmlhttp.send();
}
函数showData()
{
if(xmlhttp.readyState==4&&xmlhttp.status==200)
{
var data=JSON.parse(xmlhttp.responseText);
//使用返回的数据构建一个html表
var输出=“”;
输出+=‘团队省’;
对于(var i=0;i@GleneaMan,首先关注SQL查询。您的团队表必须具有省id,以便代表省id
可以正确使用两个表的联接
其次,您必须相应地操作json数据
在您当前的查询数据中,省份名称与团队数量重复。@GleneaMan首先关注您的SQL查询。您的团队表必须具有省id,以便代表省id
您可以正确使用两个表的连接
其次,您必须相应地操作json数据
在当前查询数据中,省份名称与团队数量重复
<?php
$team=$_GET['name'];
$connection = mysqli_connect("localhost","root","");
mysqli_select_db($connection,"gaadb");
// I'd recommend finding just the team names first.
$result = mysqli_query($connection,"SELECT t.name, p.name FROM teams AS t, provinces AS p WHERE p.id = t.province AND t.name like '$team%'");
$rs = array();
$i=0;
while($rs[] = mysqli_fetch_assoc($result)) {
}
mysqli_close($connection);
unset($rs[count($rs)-1]); //removes a null value
print("{ \"teams\":" . json_encode($rs) . "} ");
?>