2016-11-04 154 views
0

我知道這個問題很好解釋在100頁,但我根本無法解決它。爲了說明,我一直試圖解決這個問題超過5個小時了...所以請和我一起裸露。如何通過點擊鏈接來更新MySQL數據庫行?

我有什麼 一個有很多行的MySQL數據庫。它包含一個ID,名稱,分數和其他一些列。

從此數據庫中顯示RANDOM項目的網站。它會在我的頁面上顯示所有相應的數據。

我想 我想要訪問我的網站的人按下一個按鈕,這將增加我的得分+ 1

我的代碼

update_value.php

什麼
<?php 
    include ('database_conn.php'); 
    $rowID = $row['ID']; 
    $sql2 = "UPDATE database SET Score = Score + 1 WHERE ID = '$rowID'"; 
    $conn->query($sql2); 
?> 

scripts.js < <是JS/scripts.js中的文件夾

$("#vote-up-q").click(function() { 
     $.ajax({ 
       type: "POST", 
       url: "update_value.php" 
      }) 
      location.reload(); 
    }); 

menu.php

<span class="circle-thin-yo circle-down" id="vote-down-q"> 
<a href="javascript:void(0)" title="vote down"> 
    <i class="fa fa-angle-down"></i> 
</a> 
</span> 

database_conn.php文件包含$康恩是這樣的:

$conn = new mysqli($servername, $username, $password, $dbname); 

簡單地說:有人可以點擊DIV#票了-Qmenu.php所示,如果我深知,您的網頁會顯示一個隨機的用戶的數據更新與以前的得分+ 1

+0

'$ row ['ID']'的值是多少?這個價值在哪裏分配? –

+0

您從哪裏獲取HTTP請求中的ROW ID,以及您在SQL查詢中將其設置在哪裏?此外,使用PDO,而不是mysqli,您可以開放SQL注入! – Cagy79

+0

看看你的js控制檯,並通過php和查詢檢查錯誤。 –

回答

1

mysql的價值分數,所以,當點擊upvote按鈕,這個隨機用戶得到他們的分數遞增。

如果是這樣的話,您需要將隨機用戶的ID發送到PHP腳本。例如:複製粘貼在兩個PHP文件下一代碼和在瀏覽器中打開 「HTML和Ajax文件」:

HTML和Ajax文件

<?php 
$user_id = 28; // ◄■■ RANDOM USER FROM DATABASE. 
?> 
<html> 
    <head> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> 
    <script type = "text/javascript"> 
function my_button (user_id) // ◄■■ RANDOM USER ID. 
{ $.ajax({ type : "POST", 
      data : { "my_id" : user_id }, // ◄■■ RANDOM USER ID. 
      url  : "update_value.php", 
      success : function (data) 
         { alert(data); 
         }, 
      error : function (xhr) 
         { alert("error"); 
         } 
     }); 
} 
    </script> 
    </head> 
    <body> 
    <button onclick="my_button('<?php echo $user_id;?>')"> <!-- ◄■■ RANDOM USER ID --> 
      Upvote me!</button> 
    </body> 
</html> 

update_value.php

<?php 
    //include ('database_conn.php'); 
    $rowID = $_POST["my_id"]; // ◄■■ PARAMETER FROM AJAX. 
    //$sql2 = "UPDATE database SET Score = Score + 1 WHERE ID = '$rowID'"; 
    //$conn->query($sql2); 
    echo "User $rowID upvoted!"; 
?> 

爲了測試目的,我評論了「update_value.php」中的數據庫行。

相關問題