2011-12-28 8 views
0

location = $locationというデータベースにクエリする必要があります。これにより、user_idが返されます。テーブルをクエリしてから、結果ごとに別のテーブルをクエリして...など

これで、user_id =以前のuser_idの結果を取得する別のデータベースを照会する必要があります。これでgame_idが見つかります。

私は、(。各ゲームの名はIDが割り当てられている)各ゲームの名前を取得するには、これらのgame_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>"; 
     } 

サウンド複雑です。もっと簡単な方法はありますか?

+5

データベースクエリでJOINを使用する方法を学ぶと、それはもっと効率的ですが、より効率的ですuser_idのような列に複数の値を格納するのではなく、データベースを正規化した場合にも役立ちます –

+0

ありがとうございました。 – AJFMEDIA

答えて

0

このようなクエリは、location, user_id, game_idテーブルを生成します。

+0

あなたが受け入れたので、「INNER JOIN」と「LEFT JOIN」の使い方とメモリの違いを学び、あなたの使い方に合わせて適切な結合を使いましょう。 – Hossein

関連する問題