php+mysql 同一字段能否不停添加字符串?求PHP语法!

我用PHP+Mysql做了一个互动投票系统,数据库member下有u_id,u_name,vote_name三个字段,u_id为用户的自动ID,u_name为用户名,vo... 我用PHP+Mysql做了一个互动投票系统,数据库member下有u_id,u_name,vote_name三个字段,u_id为用户的自动ID,u_name为用户名,vote_name记录参与投票的人的用户名。

比如说u_id='1',u_name=“张三”的人给u_id=2 ,u_name=“李四” 的人投票,那么在u_id=2 ,u_name=“李四"记录中,李四的u_name下将记录下“张三”
如果u_id='3',u_name="王五"也给李四投票,那李四的u_name的记录将变成”张三,王五“
展开
 我来答
优秀010203
2013-08-30 · 超过25用户采纳过TA的回答
知道答主
回答量:70
采纳率:0%
帮助的人:58万
展开全部
可以添加,用mysql的concat函数,或者用php处理都行;
但是你这样设计表结构有很大的问题,很不合理,应该把用户信息和投票信息分开来,比如表user存放uid,uname,里面存放的数据,1,张三;2,李四;3,王五,另外一张投票表,vote表,fromuserid,touserid, 里面存放谁给谁投票,比如张三给李四投,那么存1,2;王五给李四投,再存一条3,2;这样可以方便进行重复过滤和取消投票,以及各种查询。
更多追问追答
追问
说得有道理,因为刚学习,啥也不懂,还要多请教。
按照你的说法,我已经新建了两个数据表member和vote_record
member有两个字段:u_id和u_name;vote_record下有两个字段u_id和from_id
两个表的u_id是关联,数值表示同一个人。
from_id用来记录投票人的id,请问该功能的PHP语法怎么写?
追答
u_id和from_id都是member表里对应的u_id,投票人和被投票人,都在member表里,投一次票,插入一次投票人和被投票人的u_id到vote_record表中。投一次插入一次
百度网友a19d193
2013-08-30 · TA获得超过3446个赞
知道大有可为答主
回答量:1464
采纳率:100%
帮助的人:1450万
展开全部
楼上其实都说了,但是说的不够明白,我补充一下好了

楼上提到了concat函数,这是一种方法,另一种方法就是你先读数据,然后直接把vote_name字段的值修改了保存就行,比如$row['vote_name']+=', 王五',然后保存。

但是不推荐这样去做,效果极差。比如我想知道李四都给谁投票了,你就要用效率极低的like搜索了。所以,最佳的做法就是如下的表结构
id auto_increment
vote_id 投票编号:你应该有表记录投票目的等信息吧,应该关联这个字段,这样你才知道这些数据是针对的哪一次投票
to_id 被投票用户
from_id 投票用户
created 投票时间,可选
ip 投票ip,可选
至于被投票用户和投票用户的名字可以通过表关联获得,不需要额外保存。
每当有人投票时就新增记录就行了。
具体查询的时候可以通过以下语句去做
select
member.*, vote.title, u1.name as to_user,
GROUP_CONCAT(u2.name) as from_users,
COUNT(*) as total_vote

from member
left join vote by member.vote_id = vote.id
left join user as u1 by member.to_id = u1.id
left join user as u2 by member.from_id = u2.id
where member.vote_id = '要统计的投票记录编号'
group by member.to_id

自己查查相关手册思考一下吧。设计数据库不适合新手做哦,数据库设计上一点点的问题都会在后期带来极大的麻烦。建议你多思考,考虑当前的设计是否在日后的开发中够用、易用并安全,这是数据库设计的基本目标。
比如你原先的设计,张三得了多少票?这是很普遍的应用吧?你那个能直接查出来吗?还要先查出名字,然后根据逗号分隔,然后计算数组长度才知道。有效率么?PHP端要多写很多东西吧?

开发这个东西最怕偷懒,今天偷懒,日后就要几倍的工作才能弥补。加油吧
追问
因为是菜鸟所以很多都不懂,多谢提醒。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hgfhfg巨蟹
2013-08-30
知道答主
回答量:11
采纳率:0%
帮助的人:8.6万
展开全部
想法是可以的,但是php没有这个语法给某一字段不停添加字符串,看来你是新手,你可以先把这个字段原先的值读取出来,拼接好了再添加数据库,某人被投多少票最好不要放在一个表里,建议新建一个对应的关系表
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式