关注功能作为博客的一个组成模块,在实现的时候碰到点麻烦。最开始的设想是在数据库文章的表格中加入分类id(type_id),用户表格中加入关注的种类id,新建一个种类表,通过多表查询实现输出用户关注的内容。商讨一番后,有了非常简单的办法。
首先是数据库的设计。文章表里有type列,用户表有type列,作为筛选时的条件。
在用户中心用复选框的形式获取到用户需要关注的内容。
<form name="form" action="post_type.php" method="post" style="font-size:28px;">
<input name="checkbox[]" type="checkbox" value="体育"/>体育</br>
<br><input name="checkbox[]" type="checkbox" value="文学" />文学</br>
<br><input name="checkbox[]" type="checkbox" value="科技"/>科技</br>
<br><input name="checkbox[]" type="checkbox" value="数码"/>数码</br>
<br><input name="checkbox[]" type="checkbox" value="新闻"/>新闻</br>
<br><input name="checkbox[]" type="checkbox" value="杂谈"/>杂谈</br>
<input style=" margin-top:40px;height:60px; width:120px; line-height:10px; font-size:22px;" type="submit" value="提交"/>
</form>
一定要在name属性上加上[],不加只能获取到一个值。之后
if( $_POST )
{
$value = $_POST['checkbox'];
$sc= ''.implode(',',$value);
}
注意加粗部分,不然获取到的永远都是Array。
再把获取到的值写入数据库。于是现在用户表里已经有用户关注的内容了。
接下来解决给文章分类的问题。标题前加个下拉框
<select name="type" class="feedback-input" style="height:auto;">
<option value="">请选择文章分类!</option>
<option value="文学">文学</option>
<option value="体育">体育</option>
<option value="数码">数码</option>
<option value="杂谈">杂谈</option>
<option value="新闻">新闻</option>
<option value="科技">科技</option>
</select>
取到值写进文章表里。
最后在关注页面
session一直传递着当前用户的名字,用用户姓名作为筛选条件选出当前用户关注的内容,设为变量$type;
"select * from body where type = '$type' order by body_id desc" 如此筛选出符合条件的,即可实现用户关注及输出用户关注的内容。
给照片也可以进行分类通过这种方法输出用户关注的内容。还是挺好实现的,只怪脑子不转弯。