查询表,然后为每个结果查询另一个表,然后…等


Query table and then query another table for each result and then ... etc

我需要查询一个数据库,其中location = $location。这将返回一些user_id s。

然后我需要查询另一个数据库,其中user_id =以前的user_id结果。这将找到game_id s。

然后我需要用这些game_id查询另一个表来获取每个游戏的名称(每个游戏名称都分配了一个id)

这就是我拥有的:

 if (isset($_POST['location'])) {
        $location = $_POST['location'];
        $query = mysql_query("SELECT * FROM users WHERE location = '$location'") or die(mysql_error());
        echo "<ul>";
        while ($row = mysql_fetch_array($query)) {
            foreach (explode(", ", $row['user_id']) as $users) {
                echo "<li>" . $row['user_name'] . "<ul><li>";
               //this where I need I need to query another table where user_Id = $user (each user found in previous query)
//this will find multiple game id's (as $game) , I then need to query another table to find game_id = $game
// output name of game
                echo "</li></ul></li>";
            }  
        }
        echo "</ul>";
      }

听起来复杂。有更简单的方法吗?

这样的查询将生成location, user_id, game_id表。在SQL查询中投入尽可能多的精力,以便您能够轻松地通过代码处理它:

$query = mysql_query("SELECT game_name FROM another_table '
                      JOIN users '
                      JOIN games '
                      WHERE users.location = '$location'")
         or die(mysql_error());
while ($row = mysql_fetch_array($query)) {
    echo $row['game_name']; //Here is the game name
}
相关文章: