2014-10-18 59 views
0

在數據庫中,用戶有一個名爲weapon_id的行,它決定了他從另一個帶有武器的表中使用的武器。有沒有更好的方法來從2個表中獲取信息

有沒有更好的方式來獲取像連接表或其他信息?

$user_get = mysqli_query($db, "SELECT * FROM members WHERE id = '".$_SESSION['sess_id']."'"); 
$user = mysqli_fetch_assoc($user_get); 

$weapon_get = mysqli_query($db, "SELECT * FROM weapons WHERE weapon_id = '".$user['weapon_id']."'"); 
$weapon = mysqli_fetch_assoc($weapon_get); 
+1

是的,你會使用一個連接,你可以在一個查詢中做到這一點。你能粘貼你想要的結果嗎? – 2014-10-18 13:50:54

+0

當我在配置文件上回顯出來,例如我顯示他們使用的武器echo $ weapon ['damage'] $ weapon ['name']和其他用戶統計信息,如$ user ['name'] $用戶['hp']等 – piNo 2014-10-18 13:58:41

回答

0

使用JOIN這樣

$user_get = mysqli_query($db, "SELECT * FROM members m LEFT JOIN weapons w ON(w.weapon_id=m.weapon_id) WHERE m.id = '".$_SESSION['sess_id']."'"); 
    $user = mysqli_fetch_assoc($user_get); 

變化的連接類型根據您的要求。僅用於示例

  • INNER JOIN上述查詢:返回所有行當在BOTH 表

  • LEFT JOIN至少一個匹配:左表中返回所有行,並且所述匹配右表

  • 右行 JOIN:右表中返回所有行,並匹配 行左表

  • FULL JOIN:返回所有行的時候沒有在表中的一個匹配

更多關於加入click here ,並檢查該http://blog.codinghorror.com/a-visual-explanation-of-sql-joins/

0
SELECT * FROM `weapon` as w 
JOIN `user` as u 
on w.weapon_id = u.weapon_id 
and u.id = :session_id 

這個怎麼樣?

相關問題