2016-08-02 5 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

*「フロントエンドでは完全に機能しますが、バックエンドではデータベースにデータを追加しません」* - 何かが間違っていたことを確認します。/MySQLとあなたのコンソール。 –

+0

データが挿入されていません。唯一のエラーです。ユーザーが投票ボタンをクリックすると、データベースの中で-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クエリが"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)"; 
関連する問題