mysql里不同的table,如何做循环发布,是关于站内信息群发的.

2013-07-13 21:46:03 +08:00
 brando
是这样,有2个表,一个表是users,存储用户信息的;另一个表是messages的,是存储站内信息的。
那么我现在做了这样的一个处理,但真心不知道如何搜索users里的username,然后赋值到messages的recipient里。[messages的数据结构就在下面的语句里]


foreach ($recipient as $value);{
$query = "INSERT INTO messages(date,recipient,sender,subject,body,unread,folder) values
('$t','$value','admin','$_POST[subject]','$_POST[body]','TRUE','sent'),
('$t','$value','admin','$_POST[subject]','$_POST[body]','TRUE','inbox')";

我的思路是这样,先搜索users里所有用户,将搜索出来(循环)的值赋值为recipient,那么recipient+1也就是users里所有的用户了,我想,如何用php来做这样的群发。

谢谢。
3719 次点击
所在节点    PHP
8 条回复
kchum
2013-07-13 22:44:30 +08:00
我思路是这样的,先把用户的站内信息,处理成数组,用一条或者多条分开insert into,这样就不用频繁操作数据库。。
msg7086
2013-07-14 00:00:46 +08:00
你需要 insert into ... select ... 语句?
brando
2013-07-14 16:51:46 +08:00
@msg7086 我有试过,好像我的语句写法出了问题,没成功...- -||
msg7086
2013-07-14 17:46:51 +08:00
insert into messages
select ?, username, 'admin', ?, ?, TRUE, 'sent'
from users
where username like who
[$t, $subject, $body]
brando
2013-07-14 20:20:55 +08:00
看了下这条语句的帮助,似乎得A和B表里有同样字段的表,而我的没有。- -||

我的是B表的recipient对应A表的username...Orz
xlmo
2013-07-14 21:52:07 +08:00
select username as recipient ....
vibbow
2013-07-14 22:32:28 +08:00
你问题问的挺不清楚的。
你在存message的时候,你的username是以什么类型传过来的,ID还是怎样。你这里根本没说。
vibbow
2013-07-14 22:34:40 +08:00
其次,这句话
先搜索users里所有用户,将搜索出来(循环)的值赋值为recipient,那么recipient+1也就是users里所有的用户了
完全没看懂,尤其是后半句。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/75674

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX