我有一张 table ...
表:论坛
for_id for_name for_des for_mem
1 Forum 1 Description 1 mem1@email.com, mem2@email.com
2 Forum 2 Description 2 null
3 Forum 3 Description 3 mem1@email.com
然后我有另一个表:成员
mem_id mem_name mem_email ...
1 Jane mem1@email.com
2 Jack mem2@email.com
3 Smith mem3@email.com
我正在尝试创建一个 HTML 选项列表。一个多选列表,将显示成员 中的所有列,然后在编辑信息时选择论坛 中的列。
示例:编辑 for_id = 1 它应显示所有用户并仅选择 for_id=1 的 for_mem
中的用户目前我正在使用:
<? $data = explode(',',$row[for_mem]); ?>
<div class="col-md-9">
<select name="for_mem" id="" multiple class="form-control">
<?php foreach($data as $key => $value){?>
<option value="<?php echo $value; ?>"><?php echo $value; ?></option>
<?php } ?>
</select>
</div>
但它只显示该论坛的 for_mem 中的用户,而不是所有用户,供他们选择要添加的新用户。另外,只是电子邮件。有没有办法显示名字?
请帮忙。谢谢
最佳答案
这个查询可以解决部分问题,然后通过联合将两者连接起来。第一部分是论坛中存在的成员,第二部分是论坛中不存在的成员。 我添加了一个字段“checked”,第一部分为 1,第二部分为 0,用于确定显示时要检查哪些用户。
select for_id, for_name, for_mem, mem_name, mem_email, 1 checked from forums, members where locate(mem_email, for_mem) > 0
union
select for_id, for_name, for_mem, mem_name, mem_email, 0 checked from forums, members where locate(mem_email, for_mem) = 0;
可能有任何句法错误我没有测试,因为数据不可用。您可以使用 group by 或 group concat
获取更多信息。我建议先在 mysql 提示符下运行它,然后查看结果并根据需要进行修改。
关于使用 JOIN 的 PHP MySQL 选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31176620/