php - 使用 Mysql 、 Jquery 和 Php 进行上下投票

标签 php jquery mysql ajax vote-up-buttons

我正在尝试使用 php、mysql 和 jquery 制作投票上下系统。它在前端完美运行,但在后端它不会在数据库中添加数据。任何帮助/建议将不胜感激..!!以下是代码..

<span id="links-<?php echo $rec1['que_id']; ?>">
<input type="hidden" id="votes-<?php echo $rec1['que_id']; ?>" value="<?php echo $rec1['votes']; ?>">

<?php

$vote_rank = 0;
$query ="SELECT SUM(vote_rank) as vote_rank FROM cvotes WHERE que_id = '".$rec1['que_id']."' and username = '$logged_user'";
 $result2 = $conn->query($query);
    foreach ($result2 as $roww) {
$up = "";
$down = "";

if(!empty($roww["vote_rank"])) {
    $vote_rank = $roww["vote_rank"];
    if($vote_rank == -1) {
    $up = "enabled";
    $down = "disabled";
    }
    if($vote_rank == 1) {
    $up = "disabled";
    $down = "enabled";
    }
}
?>  

<input type="hidden" id="vote_rank_status-<?php echo $rec1['que_id']; ?>" value="<?php echo $vote_rank; ?>">
<span class="btn-votes">
<input type="button" title="Up" class="up" onClick="addVote(<?php echo $rec1['que_id']; ?>,'1')" <?php echo $up; ?> />
<span class="label-votes"><?php echo $rec1['votes']; ?></span>
<input type="button" title="Down" class="down" onClick="addVote(<?php echo $rec1['que_id']; ?>,'-1')" <?php echo $down; ?> />
<p id='show'></p>
</span>

函数 addVote(que_id,vote_rank) {

    $.ajax({
    data:'que_id='+que_id+'&vote_rank='+vote_rank,
    url: "add_vote.php",
    type: "POST",
    beforeSend: function(){
        $('#links-'+que_id+' .btn-votes').html("<img src='LoaderIcon.gif' />");
    },
    success: function(vote_rank_status){
    var votes = parseInt($('#votes-'+que_id).val());
    var vote_rank_status;// = parseInt($('#vote_rank_status-'+que_id).val());
    switch(vote_rank) {
        case "1":
        votes = votes+1;
        vote_rank_status = vote_rank_status+1;
        break;
        case "-1":
        votes = votes-1;
        vote_rank_status = vote_rank_status-1;
        break;
    }
    $('#votes-'+que_id).val(votes);
    $('#vote_rank_status-'+que_id).val(vote_rank_status);

    var up,down;

    if(vote_rank_status == 1) {
        up="disabled";
        down="enabled";
    }
    if(vote_rank_status == -1) {
        up="enabled";
        down="disabled";
    }   
    var vote_button_html = '<input type="button" title="Up" class="up" onClick="addVote('+que_id+',\'1\')" '+up+' /><span class="label-votes">'+votes+'</span><input type="button" title="Down" class="down"  onClick="addVote('+que_id+',\'-1\')" '+down+' />';    
    $('#links-'+que_id+' .btn-votes').html(vote_button_html);
    }
    });
}

  <?php
//-----add_vote.php-----
if(!empty($que_id)) {
     if(isset($_SESSION['login_user']))
    {
        $logged_user = $_SESSION['login_user'];
    }

$que_id=$_POST["que_id"];
    $vote_rank = $_POST["vote_rank"];

    require_once("dbcontroller.php");
    $db_handle = new DBController();


    $query = "INSERT INTO cvotes (que_id,username,vote_rank) VALUES ('$que_id','$logged_user','$vote_rank')";

    $result = $db_handle->insertQuery($query);


    if(!empty($result)) {
        $query = "SELECT SUM(vote_rank) as vote_rank FROM cvotes  WHERE que_id = '$que_id' and username = '$logged_user'";

        $row = $db_handle->runQuery($query);

        switch($vote_rank) {
            case "1":
                $update_query ="UPDATE questions SET votes = votes+1 WHERE que_id='" . $que_id . "'";
            break;
            case "-1":
                $update_query ="UPDATE questions SET votes = votes-1 WHERE que_id='" . $que_id . "'";
            break;
        }

        $result = $db_handle->updateQuery($update_query);   
        print $roww["vote_rank"];
    }
}
?>

最佳答案

似乎您的插入查询是错误的“INSERT INTO cvotes (que_id,username,vote_rank) VALUES ('$que_id','$logged_user','$vote_rank')”,尝试根据数据类型使用引号。您已经为所有值提供了引号,我认为除了用户名之外,其余都是整数数据类型,然后将查询更改为

"INSERT INTO cvotes (que_id,username,vote_rank) VALUES ($que_id,"'"+$logged_user+"'",$vote_rank)";

关于php - 使用 Mysql 、 Jquery 和 Php 进行上下投票,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38727654/

相关文章:

php - 如何使用 preg_replace 仅检查字母?

php - 我们可以通过一些代码强制清除浏览器缓存吗

javascript - 输出PHP时如何转义一个JS变量?

javascript - 如果根据唯一条件 javascript 在数据库中插入重复条目,则发出警报

php - 在多部分表单提交上显示加载 gif

mysql 对各行进行条件求和

javascript - 创建一个 JS 弹出窗口,链接到数据库中的数据

jquery - 确定浏览器高度和宽度以将图像大小调整为全屏

php - MySQL 分组依据和计数器

MySQL:选择上次修改时具有一个属性但过去没有其他属性的项目