我想弄清楚以下内容。首先,我想检查成员是否在第11,43或1组中。
我有以下表格列:
table members (member_id, name, group)
334 Ronald 43
table content (member_id, value)
334 Gold
我正在寻找一个显示名称FROM members和value FROM content的查询,与member_id连接,最终结果如
Ronald Gold
如果用户不在我设定的群组中,他/她将不会显示。
以下是我设法做的事情
$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。有什么帮助吗?
答案 0 :(得分:1)
当您将echo $row['member_id']
更改为echo $row['name']
时,如果您回复结果,则会获得会员的姓名。
返回$row['group']
将告诉您该成员所在的组。
答案 1 :(得分: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
答案 2 :(得分: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