如何通过AJAX在我的数据库中存储增量投票?

时间:2011-05-26 23:19:08

标签: php jquery html ajax auto-increment

我正处于我的第一个AJAX项目的最后一站。我有一个有评论的社交网络。我只是添加一个拇指图标,按下时,通过JQUERY将注释的ID发送到背景php页面,该页面是SUPPOSED以存储注释的id以及它被按下的记录(增量)。在那之后,我需要它将该记录发送回拇指图标所在的页面,然后告诉该页面拇指已经被击中并在指定区域增加计数器。

thumb_increment表中我有:

id自动递增和 comment_id这是正在被投票的评论的ID。

我想知道是否应该添加另一列来保存upvotes的数量,或者只是在comment_id列中跟踪。我对那里的逻辑感到有点困惑。

到目前为止,我可以点击拇指并让它从我的其他页面发送ID并通过$_POST获取ID。这是代码:

<?php

// 1. CHECK AND SEE IF THE "$comment_id" IS VALID. I AM GOING TO RETREIVE THE VALUE OF THE $_POST BEING SENT FROM THE PHP PAGE THAT IS SENDING THE REQUEST

/* QUERY TO CHECK $_POST DATA WITH: */

/* this is grabbing id that jquery sent over via post */
if(isset($_POST['comment_id'])) {

/* making a variable out of the grabbed id */   
$retreived_comment_id = ($_POST['comment_id']); 

/* this query is bring to frutation the exact id of the comment */
$query = "SELECT * FROM `CysticAirwaves` WHERE `id` = '".$retreived_comment_id."' && `status` = 'active'"; 
$request = mysql_query($query,$connection);
if($result = mysql_fetch_array($request)) {

/* insert the comment into the increment table */

$query = "INSERT INTO `thumb_increment` (
                                `comment_id`
                            ) VALUES (
                            '" . $retreived_comment_id . "'
                                )";
mysql_query($query,$connection);

/* increment the vote in the db */

    }

}


?>

总结一下我还剩下的事情:

我需要递增并将注释存储在我的数据库中,将其放入变量中,然后将其发送回带有拇指图标的页面,并将该变量固定在计数器的增量上

提前致谢。

1 个答案:

答案 0 :(得分:0)

修改

关于数据库部分,根据您的评论......

我只需要upvote的规范化数据库包含:

comment_id, user_who_voted_id, timestamp

将来如果你想拥有downvote的概念,比如stackoverflow,你可能需要添加另一列。在前一个更简单的情况下,为了获得计数,你只需要做一些事情:

SELECT count(*) FROM thumb_increment WHERE comment_id = ?

旧答案

当您修改状态时,不会将$ .get用于此类内容。我可能会用一个帖子。重写他的榜样......

http://api.jquery.com/jQuery.post/

http://api.jquery.com/serialize/

http://api.jquery.com/parent/

// Assuming html that looks something like the following
<form id='comment_details_123123'>
    <input type='hidden' value='123123' name='comment_id' />
    <div class='thumb'><img src='thumb.jpg' /></div>
    <div class='thumb_counter'>3</div>
</form>

$('.thumb').click(function(){
    var comment_form = $(this).parent('form');
    $.post('comment.php', comment_form.serialize(), function(response) {
        comment_form.find('.thumb_counter').html(response.new_count);
    });
});