2016-08-02 5 views
0

Ich versuche, Vize-up-down-System mit PHP, MySQL und Jquery. Es funktioniert perfekt am Front-End, aber am Back-End fügt es keine Daten in der Datenbank hinzu. Jede Hilfe/Vorschläge werden geschätzt .. !! Im Folgenden finden Sie den Code ..stimme oben-unten mit Mysql, Jquery und 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> 

Funktion 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

Was whan u geschah hinzufügen Daten in der Datenbank? –

+1

* "Es funktioniert perfekt auf Front-End, aber am Back-End fügt es keine Daten in der Datenbank." * - Irgendetwas ist offensichtlich schiefgelaufen. Überprüfen Sie auf Fehler, Sie tun das nicht über PHP/MySQL und Ihre Konsole –

+0

Daten werden nicht eingefügt..das ist der einzige Fehler..Wenn der Benutzer auf die Schaltfläche zum Abstimmen drückt, sollte er +1 in el hinzufügen se -1 in der db. Aber es funktioniert nicht .. –

Antwort

0

Okay, also endlich Problem gelöst .. !! Hatte nur kleinere Fehler von Variablen und linking..below ist der Code ..

versteckten Eingang Hinzugefügt: „>

einige Änderungen in 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

scheint, dass Ihre INSERT-Abfrage ist falsch "INSERT INTO cvotes (que_id,username,vote_rank) VALUES ('$que_id','$logged_user','$vote_rank')", versuchen Sie das verwenden, zitiert nach dem Datentyp .. Sie haben Anführungszeichen für alle Werte gegeben, ich denke, außer Benutzernamen Rest sind Ganzzahl-Datentypen dann ändern Sie die Abfrage als

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