从不同的表中获取ID的名称

时间:2012-10-10 15:24:26

标签: php mysql

我有一个包含来自数据库的大量数据的数组。在数组中,有两个名为teameinsidteamzweiid的字段。查询非常简单:

$spiel = mysql_query("select teameinsid, teamzweiid from begegnung", $connection) or die("Keine passende Begegnung");

我需要的是在数据库中搜索这些ID的名称。名称位于不同的表中。

我现在拥有以下内容:

while($tmp = mysql_fetch_array($spiel)){
 $teins = $tmp['teameinsid'];
 $tzwei = $tmp['teamzweiid'];
}

所以我知道这两个ID,但我不知道在哪里保存这些名字。如果我尝试:

$name = mysql_query("select name from team where teameinsid = $teins", $con) 

每次都会被覆盖。我该如何管理?

编辑:

数据库方案:

表团队:id,name 表Begegnung:id,teameinsid,teamzweiid

2 个答案:

答案 0 :(得分:1)

我对此进行了测试,如果你在$ speil中的查询是这样的话,它就可以了:

SELECT B.*, T1.name AS teamnameeins, T2.name as teamnamezwei FROM begegnung AS B
JOIN team AS T1 ON T1.id = B.teameinsid
JOIN team AS T2 ON T2.id = B.teamzweiid

http://dev.mysql.com/doc/refman/5.0/en/join.html

您应该像现在这样使用您的代码:

while($tmp = mysql_fetch_array($spiel)){
 $teins = $tmp['teamnameeins'];
 $tzwei = $tmp['teamnamezwei'];
}

答案 1 :(得分:0)

像这样更改您的代码

while($tmp = mysql_fetch_array($spiel)){
     $teins[] = $tmp['teameinsid'];
     $tzwei[] = $tmp['teamzweiid'];
    }

现在

$ids=implode ( ',' ,  $teins);

$name = mysql_query("select name from team where teameinsid in($ids)", $con)