2016-02-04 115 views
0

我想弄清楚以下幾點。一開始我要檢查,如果一個成員是在組11,43或1從兩個mysql表中加入列

我有列如下表:我在尋找它顯示的名稱從查詢

table members (member_id, name, group) 
334 Ronald 43 
table content (member_id, value) 
334 Gold 

會員和價值的內容,加入了與member_id和最終的結果類似

羅納德黃金

如果用戶不在我已經設置了組,他/她將不會顯示。

以下是我已經成功地做到

$sql = 'SELECT * FROM members m INNER JOIN content p ON m.member_id = p.member_id '; 
$retval = mysql_query($sql, $conn);  

while($row = mysql_fetch_array($retval, MYSQL_ASSOC)) { 
echo $row['member_id']. " " .$row['value']; 
echo "<br>"; 
}  

將輸出334金。

我只需要在開始時檢查組,並在最終輸出中用name替換member_id。任何幫助?

+1

2個關注領域:您自動假設您的查詢成功,接下來:您仍在使用'mysql_ *'函數,這些函數從PHP 7開始已棄用。請考慮切換到'mysqli_'或'PDO'擴展 – Derek

+0

查詢在哪裏檢查用戶是否在其中一個組中? – Barmar

+0

@OliverQueen感謝您的關注。如果查詢失敗,我確實有一個聲明,只是沒有在這裏複製它。我也做了需要的mysqli開關。 – DxDogo

回答

1

只要調整您的MySQL查詢:

$sql = 'SELECT m.name, p.value FROM members m JOIN content p ON m.member_id = p.member_id WHERE m.group = 1 OR m.group = 11 OR m.group = 43; 

然後

echo $row['name']. " " .$row['value']; 

而且你應該使用mysqli_query()PDO::query()mysql_query()已棄用。 Reference

+0

非常感謝!我也改變爲mysqli,並且一切都按照原樣運行。 – DxDogo

1

如果您將echo $row['member_id']更改爲echo $row['name'],則會回顯結果,您將獲得該成員的姓名。

返回$row['group']會告訴你哪個組的成員是在

0

你的SQL應該返回下面的結構爲每行

(member_id, name, group, value) 

過濾掉的成員並不需要的羣體修改查詢

$sql = 'SELECT * FROM members m INNER JOIN content p ON m.member_id = p.member_id WHERE m.group IN (11,43,1) '; 

旁註:

考慮使用PDO或mysqli_ *,而不是mysql_ *,因爲mysql_ *已被棄用,並在PHP7中消失