php处理我的关注和关注我的

关注是一个常见得模块,下面贴出一种简单的处理,如果要实现点击(加关注),文字变为(已关注),字体变色,点击(已关注),字体变为(加关注),变回原色,最好结合php定义一个class,在渲染模板时,就要查数据表进行判断,把class样式抛给模板,当然抛的只是一个class名,根据不同的class名给不同的样式

php代码:

query('set names utf8');
		    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
		} 	catch (PDOException $e) {
		    echo $e->getMessage();
		    exit;
		}
	try {
 			//$user_id = intval($_SESSION['user_id']);//判断是否登录,没有登录跳转到登录页
			$user_id=$_SESSION['user_id']=15;//暂时
			//$follow_id = intval($_REQUEST['follow_id']);
			$follow_id = 19;//暂时
			$result   = array('error' => 0, 'info' => '', 'data'=>'');
			if(empty($_SESSION['user_id'])){
				header('location:http://www.baidu.com');//也可以由模板js完成跳转
			}else{
				$sql = 'INSERT INTO `one` (`user_id`, `follow_id`, `follow_time`) VALUES ('.$user_id.','.$follow_id.','.time().') ON DUPLICATE KEY UPDATE follow_time='.time();
				//ON DUPLICATE KEY UPDATE只是MySQL的特有语法,并不是SQL标准语法! 
				//这个语法适合用在需要判断记录是否存在,不存在则插入存在则更新的场景.在此防止多次关注插入记录
				$rows=$pdo->exec($sql);
				if($rows > 1){
					$result['error'] = 2;
		    		$result['info'] = '已经关注!';
		    		$result['data'] = $rows;
				}else{
					$result['error'] = 1;
		    		$result['info'] = '关注成功!';
				}
			}
				echo json_encode($result);
			} catch (Exception $e) {
			    echo $e->getMessage();
			    exit;
			}
html代码:




Document



点击关注




数据库设计:
DROP TABLE IF EXISTS `test`;
CREATE TABLE `test` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT, #自增id
  `user_id` mediumint(8) unsigned NOT NULL DEFAULT '0', #用户id
  `follow_id` mediumint(8) unsigned NOT NULL DEFAULT '0', #被关注用户的id
  `follow_time` int(11) unsigned NOT NULL DEFAULT '0', #关注时间
  PRIMARY KEY (`id`),                                                   #id为主键
  UNIQUE KEY `user_id` (`user_id`,`follow_id`)                         # 设置user_id、follow_id唯一,防止重复点击关注,重复添加数据
) ENGINE=MyISAM AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;

你可能感兴趣的:(php)