问题描述
- JAVA实现点赞功能 if语句
- 在Goods表中有以下属性
id goods(赞数) news_id(新闻id) user_id()用户id
想在后台做一个判断对于同样的新闻news_id,不能有同样的用户user_id点赞
if语句该如何写?
解决方案
Goods表设计的有问题啊 goods(赞数)应该在新闻表里
goods表只要存id news_id(新闻id) user_id(用户id)
发sql查是否已点赞的时候where条件判断news_id 和 user_id
select count(1) from Goods where news_id=? and user_id=?
值大于0就代表已点赞
只等于0就插入点赞的数据
解决方案二:
你应该有两个参数进来吧 news_id和user_id的吧 select t.* from Goods t where t.user_id=? and t.news_id=?
判断获取到的数据是否为null 如果为空就点赞 如果不为空就不能点赞啊
解决方案三:
Goods goods = new Goods();
if (goods.user_id != user_id) {
//
}
//查询一下也行如果能查出来说明已经点赞过了。
select count(1) from Goods where user_id = ?
解决方案四:
应该有几个方法吧:
1,用户表是否记录用户的点赞记录,如果有记录,并且对这个Goods进行过点赞,则这次点赞就不可以进行,否则可以;
2,新闻表是否记录点赞的用户,如果这个ID的新闻记录点赞用户的记录,并且此次操作的用户的ID包括在内,则这次点赞就不可以进行,否则可以;
解决方案五:
介个和java不java的没多大关系吧!
1、如果Goods表量不大,加载到内存中,有新的客户点赞,遍历Goods集合看其是否对某个商品点过赞
2、数据库处理,select count(1) from Goods where user_id = ?,大于0就是点过赞咯
解决方案六:
(1)sql语句:
两个参数 user_id news_id
number=select * from Goods t where t.user_id=? and t.news_id=?
(2)判断number是否大于1(大于1,表示该用户已点赞)
if(number>1)
{
goods=goods-1; //如果点赞了,就取消
}else{
goods=goods+1; //如果没点赞了,就点赞
}
解决方案七:
把新闻ID和用户ID传过去查询下 id_GOODS (赞数)是不是大于0就行了。大于0就页面按钮不可用,否则UPDATE id_GOODS +1 .
解决方案八:
//传入新闻id 用户id
//根据用户id 查询 该新闻下是否有其点赞记录 记为count
if(count>0){
//不能再点赞了。。。。。。。
}
解决方案九:
必须用数据库记录用户点过赞的信息, 然后取count。