php 怎么判断是否收藏过

WBOY
發布: 2016-06-20 12:55:09
原創
1127 人瀏覽過
自己创建了个信息收藏功能,
在信息详情页面,有隐藏的title、url等信息,只要用户一按 Submit 按钮就会提示已收藏 ,然后用户后台就有记录列表了 方便用户日后查看。

现在的问题是如何判断用户在信息详情页面已经收藏过?让用户不再重复收藏?
而且,用户删除了这个信息的收藏后,还可以再收藏这个信息。


回复讨论(解决方案)

那你是怎么收藏的呢?

收藏是记录在数据库的。
判断时也是在数据库中判断。

如果你收藏时记录是url
可以使用这个url与用户id判断用户是否收藏过。

表结构如下
id,user_id,title,url

判断是否已收藏
select * from table where url=xxx and user_id=xxx;

@fdipzone 

你的意思就是 收藏的时候再查询一下数据库 

如果有这个记录就提示收藏过 

没有这个记录 就提示没收藏过?

具体代码怎么写?求指教

假设
数据表是 XX_SC
主ID字段是 ID
用户ID字段是 UID
网址字段   URL

具体怎么写?(不需要链接数据库了 整段代码上面已经链接 并判断了)

;



@fdipzone 

你的意思就是 收藏的时候再查询一下数据库 

如果有这个记录就提示收藏过 

没有这个记录 就提示没收藏过?

具体代码怎么写?求指教

假设
数据表是 XX_SC
主ID字段是 ID
用户ID字段是 UID
网址字段   URL

具体怎么写?(不需要链接数据库了 整段代码上面已经链接 并判断了)

收藏是记录在数据库的。
判断时也是在数据库中判断。

如果你收藏时记录是url
可以使用这个url与用户id判断用户是否收藏过。

表结构如下
id,user_id,title,url

判断是否已收藏
select * from table where url=xxx and user_id=xxx;





这个 if else 语句我写不来啊   

你都不告诉我是怎么完成收藏的,我怎么知道如何查找是否收藏了
如果你把收藏信息记录在数据库中,那么检查时就自然要访问数据库
如果你记录在其他载体中,那就通过相应的方式查找
总之是:怎么存的就怎么读

@fdipzone 

你的意思就是 收藏的时候再查询一下数据库 

如果有这个记录就提示收藏过 

没有这个记录 就提示没收藏过?

具体代码怎么写?求指教

假设
数据表是 XX_SC
主ID字段是 ID
用户ID字段是 UID
网址字段   URL

具体怎么写?(不需要链接数据库了 整段代码上面已经链接 并判断了)



是的。


收藏是记录在数据库的。
判断时也是在数据库中判断。

如果你收藏时记录是url
可以使用这个url与用户id判断用户是否收藏过。

表结构如下
id,user_id,title,url

判断是否已收藏
select * from table where url=xxx and user_id=xxx;





这个 if else 语句我写不来啊   


判断是否已收藏
$url = 'http://www.baidu.com';$user_id = '1';$sqlstr = "select * from table where url='".$url."' and user_id='".$user_id."'";$query = mysql_query($sqlstr) or die(mysql_error());if(mysql_num_rows($query)>0){	// 已收藏}else{	// 未收藏}
登入後複製
登入後複製
登入後複製


如果这样都不明白,请先学习数据库方面的东西

用户收藏的记录,应该是写入数据库,判断用户是否收藏,直接查询数据即可。



收藏是记录在数据库的。
判断时也是在数据库中判断。

如果你收藏时记录是url
可以使用这个url与用户id判断用户是否收藏过。

表结构如下
id,user_id,title,url

判断是否已收藏
select * from table where url=xxx and user_id=xxx;





这个 if else 语句我写不来啊




判断是否已收藏
$url = 'http://www.baidu.com';$user_id = '1';$sqlstr = "select * from table where url='".$url."' and user_id='".$user_id."'";$query = mysql_query($sqlstr) or die(mysql_error());if(mysql_num_rows($query)>0){	// 已收藏}else{	// 未收藏}
登入後複製
登入後複製
登入後複製


如果这样都不明白,请先学习数据库方面的东西



谢谢了 这个是明白了
如果要查询2个以上数据表怎么写?
假设有 新闻、活动、问答 都有收藏功能 同时查询3个数据表 也就是 $url 有三种
是循环写三次,依次判断呢还是?

上面那个算我没问

头简直晕了 不知道每个页面的URL不一样 谢谢你了 等我测试了再来评分



收藏是记录在数据库的。
判断时也是在数据库中判断。

如果你收藏时记录是url
可以使用这个url与用户id判断用户是否收藏过。

表结构如下
id,user_id,title,url

判断是否已收藏
select * from table where url=xxx and user_id=xxx;





这个 if else 语句我写不来啊




判断是否已收藏
$url = 'http://www.baidu.com';$user_id = '1';$sqlstr = "select * from table where url='".$url."' and user_id='".$user_id."'";$query = mysql_query($sqlstr) or die(mysql_error());if(mysql_num_rows($query)>0){	// 已收藏}else{	// 未收藏}
登入後複製
登入後複製
登入後複製


如果这样都不明白,请先学习数据库方面的东西



OK 我改了一句 
$sqlstr = "select * from ".DB::table('xx_xxxx')." where url='$url' and uid='$uid'";
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板