使用php从两个不同的mysql表回显数据
我试图使用php在我的网站上显示来自两个不同mysql表的数据 我的目标是用两个表中的信息显示比赛时间表。第一个包括所有球队及其ID,第二个包括比赛的所有细节。现在,我想用第一个表中相应的团队名称“替换”“home\u id”和“away\u id”字段 各表如下:使用php从两个不同的mysql表回显数据,php,mysql,join,Php,Mysql,Join,我试图使用php在我的网站上显示来自两个不同mysql表的数据 我的目标是用两个表中的信息显示比赛时间表。第一个包括所有球队及其ID,第二个包括比赛的所有细节。现在,我想用第一个表中相应的团队名称“替换”“home\u id”和“away\u id”字段 各表如下: table "teams" id name ----------- 1 Team 1 2 Team 2 3 Team 3 4 Team 4 ... table "matchschedule" id home
table "teams"
id name
-----------
1 Team 1
2 Team 2
3 Team 3
4 Team 4
...
table "matchschedule"
id home_id away_id goals_home goals_away date
1 1 2 0 2 2016-05-05
2 3 4 2 1 2016-05-06
...
通过以下查询,我将在phpmyadmin中获得所需的数据:
SELECT
date, home.name, sp.goals_home, away.name, sp.goals_away
FROM
matchschedule sp
INNER JOIN
teams home on sp.home = home.id
LEFT JOIN
teams away on sp.away = away.id
但是,当我在我的网站中实现此查询并添加下面的代码以显示数据时,“home.name”和“away.name”字段始终为空。为了显示团队名称,我需要更改什么
while($row = mysql_fetch_array($query)) {
?>
<table border=1>
<tr>
<?php
echo "<td>".$row['date']."</td>";
echo "<td>".$row['home.name']."</td>";
echo "<td>".$row['goals_home']."</td>";
echo "<td>".$row['away.name']."</td>";
echo "<td>".$row['goals_away']."</td>";
?>
</tr>
</table>
问题是,在查询中,您请求
home.name
mysql返回到php列,标题为name
,并且您无法再使用home.name
访问该列。对于away.name也一样
这就是为什么需要为返回的列设置正确的名称
将查询更改为:
SELECT
date, home.name home_name, sp.goals_home, away.name away_name, sp.goals_away
FROM
matchschedule sp
INNER JOIN
teams home on sp.home = home.id
LEFT JOIN
teams away on sp.away = away.id
并在php中调用这些列,如:
echo "<td>".$row['date']."</td>";
echo "<td>".$row['home_name']."</td>";
echo "<td>".$row['goals_home']."</td>";
echo "<td>".$row['away_name']."</td>";
echo "<td>".$row['goals_away']."</td>";
echo“$row['date']”;
回显“$row['home_name']”;
回显“$row['goals_home'”;
回显“$row['away_name']”;
回显“$row['goals_away'”;
问题是,在查询时,您请求home.name
mysql返回到php列,标题为name
,您无法再使用home.name
访问该列。对于away.name也一样
这就是为什么需要为返回的列设置正确的名称
将查询更改为:
SELECT
date, home.name home_name, sp.goals_home, away.name away_name, sp.goals_away
FROM
matchschedule sp
INNER JOIN
teams home on sp.home = home.id
LEFT JOIN
teams away on sp.away = away.id
并在php中调用这些列,如:
echo "<td>".$row['date']."</td>";
echo "<td>".$row['home_name']."</td>";
echo "<td>".$row['goals_home']."</td>";
echo "<td>".$row['away_name']."</td>";
echo "<td>".$row['goals_away']."</td>";
echo“$row['date']”;
回显“$row['home_name']”;
回显“$row['goals_home'”;
回显“$row['away_name']”;
回显“$row['goals_away'”;
根据您的表格结构,您应该执行以下操作:
SELECT
date, home.name AS homeName, sp.goals_home, away.name AS awayName, sp.goals_away
FROM
matchschedule sp
INNER JOIN
teams home on sp.home_id = home.id
LEFT JOIN
teams away on sp.away_id = away.id
因此,基本上将sp.home替换为sp.home\u id,将sp.away\u id替换为sp.away\u id,并更改字段名称,因为表中的字段名称相同。根据表结构,您应该执行以下操作:
SELECT
date, home.name AS homeName, sp.goals_home, away.name AS awayName, sp.goals_away
FROM
matchschedule sp
INNER JOIN
teams home on sp.home_id = home.id
LEFT JOIN
teams away on sp.away_id = away.id
因此,基本上将sp.home替换为sp.home\u id,将sp.away\u id替换为sp.away\u id,并更改字段名称,因为表中的字段名称相同。谢谢!很好用,谢谢!很好用,谢谢!很好用,谢谢!很好用。