2016-06-21 82 views
0

我想显示数据从我的网站上使用PHP的两个不同的MySQL表。回声数据从两个不同的MySQL表使用PHP

我的目标是显示一个匹配时间表和来自两个表的信息。第一个包括所有的球队加上他们的ID,第二个包括所有比赛的细节。我现在想用第一个表格中的相应团队名称“替换”“home_id”和“away_id”字段。

这些表如下所示:

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> 

最终结果(缺少信息两个队名):

2016-05-05 [] 0 [] 2 
2016-05-06 [] 2 [] 1 

回答

1

的问题是,当在查询您请求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>"; 
+0

谢谢!完美的工作。 – mario

1

根据您的表谢灵运,你应该做到以下几点:

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_idsp.away by sp.away_id并更改字段名称,因为您在表格中具有相同的字段名称。

+0

谢谢!完美的工作。 – mario

相关问题