2016-08-02 3 views
0

php, mysql 및 jquery를 사용하여 투표 업 다운 시스템을 만들려고합니다. 프론트 엔드에서 완벽하게 작동하지만 백엔드에서는 데이터베이스에 데이터를 추가하지 않습니다. 어떤 도움이나 제안도 감사 할 것입니다 .. !! 코드가되어 다음 ..Mysql, Jquery 및 Php를 사용하여 업 다운 투표

<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"]; 
    } 
} 
?> 
+2

u는 추가 whan 일이 그래서 무엇을 데이터베이스의 데이터? –

+1

* "백 엔드에서는 완벽하게 작동하지만 백엔드에서는 데이터베이스에 데이터를 추가하지 않습니다."* - 분명히 잘못된 것입니다. PHP를 통해 오류를 확인하십시오./MySQL과 콘솔. –

+0

데이터가 삽입되지 않습니다. 유일한 오류입니다. 사용자가 투표 버튼을 클릭하면 el에 +1이 추가됩니다. 데브에서 -1. 하지만 작동하지 않습니다 .. –

답변

0

그래, 결국 문제가 해결되었습니다 .. !! 변수의 단지 사소한 오류를했고 linking..below는

숨겨진 입력을 추가 .. 코드입니다 : add_vote.php에 ">

일부 변경 :

<?php 
include('../connection.php'); 
session_start(); 
if(isset($_SESSION['login_user'])) 
{ 
    $logged_u = $_SESSION['login_user']; 
} 

if(!empty($_POST["que_id"])) { 
require_once("dbcontroller.php"); 
$db_handle = new DBController(); 

$query = "INSERT INTO cvotes (username,que_id,vote_rank) VALUES ('".$logged_u."','" . $_POST["que_id"] . "','" . $_POST["vote_rank"] . "')"; 
$result = $db_handle->insertQuery($query); 

if(!empty($result)) { 

$query = "SELECT SUM(vote_rank) as vote_rank FROM cvotes WHERE que_id = '" . $_POST["que_id"] . "' and username = '".$logged_u."' "; 
    $row = $db_handle->runQuery($query); 

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

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

은 삽입 쿼리 "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)";