我正在使用codeigniter
构建一个页面,用户可以like
另一个用户的帖子。
此示例中有三个页面,view_page.php
,model_page.php
和controller_page.php
。
我的view_page.php
看起来像这样
<?php foreach($members as $value): ?>
<tr>
<td><?php echo $value['post_id']; ?></td>
<td><?php echo $value['post_title']; ?></td>
<td><a href="like/<?php echo $value['post_id']; ?>">Like</a></td>
</tr>
<?php endforeach; ?>
Controller_page.php
function like($post_id) {
$this->load->model('model_page');
$this->model_page->like_user($post_id);
redirect('controller_page/viewdata');
}
我的问题是,
如果使用user_id = 1
的用户在view_page.php
上发布内容(如下图所示),则会显示他的post_id
,post_title
等按钮。
如果其他用户User_id = 22
喜欢发帖,如何在user_id=22
表中添加mysql
,以了解哪位用户喜欢该帖子?
我在考虑将user_id=22
传递到相似按钮的url
,但人们可以操纵喜欢但只更改地址栏中的user_id
。
我该如何正确地做到这一点?
提前致谢
答案 0 :(得分:2)
您可以创建一个存储所有喜欢的表格 例如。
id post_id user_id
1 1 22
2 1 44
答案 1 :(得分:0)
您的问题的整个代码会涉及很多方面,截至目前,Tanseer UL Hassan提供的解决方案是最好的数据库设计,现在您的问题是如何实现它,您可以按以下方式编写代码:
1)创建要传递给控制器的变量:
<input type="hidden" name="hidUserIdFromSession" id="hidUserIdFromSession" value="<?php echo $someUserIdFromSession;?>">
2)使用ajax在上述表格中插入数据,如下所示:
$('#yourButton').click(function() {
//Modify this according to your button name
var postId = "Get your post id here";
var userId = $("#hidUserIdFromSession").val();
$.ajax({
type: 'POST',
url: '<?php echo base_url("your/url/comes/here")?>',
data: "postId="+postId+"&userId="+userId,
success:function(response){
//Your succes functions code comes here(Alert or any other processing).
}
});
});
3)获取控制器函数内的值,如下所示:
public function functionName(){
//This is the same function which is called inside ajax call
$arrReturn = array();
$postId = $this->input->post('postId');
$userId = $this->input->post('userId');
$inserted = $this->model->insertLikeData($postId,$userId);
//this is a call to model function in which you will actually make the Query to insert the data.
if($inserted){
$arrReturn['status'] = "Success";
$arrReturn['data'] = array();//In case if you want to send some data.
}else{
$arrReturn['status'] = "Error";
$arrReturn['data'] = array();//In case if you want to send some data.
}
$arrReturn = json_encode($arrReturn);
echo $arrReturn;
}