2013-04-01 27 views
0

我無法獲取此AJAX代碼來更新我的數據庫。該代碼是一個形象,onClick將運行命令來更新數據庫使用jQuery使用jQuery更新數據庫

HTML:

<a> 
    <img class  = "heart" 
     src   = "images/heart.png" 
     onClick  = "favUpdate(0,1)" 
     onMouseover = "this.src='images/heart_mo.png'" 
     onMouseout = "this.src='images/heart.png'"/> 
</a> 

Javascript代碼:

function favUpdate(fav_up, id_up) { 
     $.ajax({ 
      type: 'post', 
      url: 'includes/fav_update.php', 
      data: {favorite: fav_up, id: id_up}, 
      success: function(output) { 
       alert('success, server says ' 
          + output 
          + 'Variables passed are '+fav_up+' '+id_up); 
       }, 
        error: function() { 
       alert('something went wrong, Favorite update failed'); 
      } 
      }); 
} 

PHP代碼:

<?php 
    require_once('../Connections/main.php'); 
    $fav_update = mysql_real_escape_string($_POST['favorite']); 
    $fav_id  = mysql_real_escape_string($_POST['id']); 
    $query  = "UPDATE projects SET favorite = $fav_update WHERE id = $fav_id"; 
    mysql_query($query, $main); 
?> 

爲主。 php

<?php 
$hostname_main = "localhost"; 
$database_main = "test"; 
$username_main = "root"; 
$password_main = ""; 
$main = mysql_pconnect($hostname_main, $username_main, $password_main) or trigger_error(mysql_error(),E_USER_ERROR); 
?> 

有誰知道爲什麼它不更新數據庫,爲什麼「選項」沒有獲取變量的數據?

+1

檢查該查詢運行成功,並告訴我們,如果你得到任何錯誤 –

+0

嘗試'「更新項目SET最喜歡='」。$ fav_update。「'WHERE id ='」。$ fav_id。「'」;' –

+0

您也正在使用obsolesce' mysql_ *'api被棄用,並會導致E_DEPRECATED錯誤php> = 5.5檢查http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php/14110189#14110189 –

回答

0

你得把單引號周圍$fav_update如果它的數據類型爲字符串VARCHAR,TEXT

$query = "UPDATE projects SET favorite = '$fav_update' WHERE id = $fav_id"; 
             ^  ^

從這裏取出$main,並嘗試

mysql_query($query); 
+0

嘗試它,但沒有工作 – raul5660

+0

@ raul5660看到編輯答案。 –

+0

仍然沒有工作 – raul5660

1

試試這個

<?php 
    require_once('../Connections/main.php'); 
    $fav_update = mysql_real_escape_string($_POST['favorite']); 
    $fav_id = mysql_real_escape_string($_POST['id']); 
    $query = "UPDATE projects SET favorite = '".$fav_update."' WHERE id = '".$fav_id."'"; 
    mysql_query($query, $main); 
?> 
+0

嘗試過,但沒有工作 – raul5660

0

請嘗試調試您的PHP(服務器端代碼優先): -

<?php 
    require_once('../Connections/main.php'); 
    $fav_update = mysql_real_escape_string($_REQUEST['favorite']); 
    $fav_id = mysql_real_escape_string($_REQUEST['id']); 
    $query = "UPDATE projects SET favorite = $fav_update WHERE id = $fav_id"; 
    echo $query; 
    mysql_query($query, $main); 
?> 

使用$ _REQUEST而不是$ _POST,並直接從瀏覽器中調用這個API,通過像http://localhost/filename.php?favorite=somevalue1&id=somevalue2

創建其網址,並檢查是否有在DB或沒有插入,並檢查查詢通過打印它。

和檢查API後,請及時更換$ _REQUEST,回到$ _ POST

+0

我得到正確的查詢,但數據庫中仍有心不是被更新? – raul5660

+0

請cehck您main.php一次,或發佈該文件在這裏 – Nishant

+0

我檢查了,但有趣的是,它的作品,因爲我實際上使用該連接文件經常直通出工地 – raul5660

0

更改PHP腳本:

<?php 
    require_once('../Connections/main.php'); 
    $fav_update = mysql_real_escape_string($_POST['favorite']); 
    $fav_id = mysql_real_escape_string($_POST['id']); 
    $updateSQL = sprintf("UPDATE projects 
          SET favorite=%s 
          WHERE id=%s", 
          $fav_update, 
          $fav_id); 
    mysql_select_db($database_main, $main); 
    $Result1 = mysql_query($updateSQL, $main) or die(mysql_error()); 


?> 

希望幫助,如果有人跑進了同樣的問題