2015-06-24 58 views
0

我剛剛創建了一個將數據發送到php和php到數據庫的ajax函數。插入到dotp_task_log表中,工作正常。但進一步,當我需要添加數據到dotp_tasks添加到dotp_task_log後,它不會添加,我不能找到爲什麼...我得到的Gerror,這是我的PHP文件,它添加數據到數據庫。不向數據庫添加值

<?php 
$currentUser = isset($_POST['currentUser']) ? $_POST['currentUser'] : ''; 
$currentTasken = isset($_POST['currentTasken']) ? $_POST['currentTasken'] : ''; 
$currentPercent = isset($_POST['currentPercent']) ? $_POST['currentPercent'] : ''; 
    $con = mysql_connect("localhost", "root", "") or die(mysql_error()); 
    if(!$con) 
     die('Could not connectzzz: ' . mysql_error()); 
    mysql_select_db("foxi" , $con) or die ("could not load the database" . mysql_error()); 

    $check = mysql_query("SELECT * FROM dotp_task_log"); 
    $numrows = mysql_num_rows($check); 
    if($numrows >= 1) 
    { 
     //$pass = md5($pass); 

     $ins = mysql_query("INSERT INTO dotp_task_log (task_log_creator, task_log_Task) VALUES ('$currentUser' , '$currentTasken')") ; 

     if($ins) 
     { 
       $check = mysql_query("SELECT * FROM dotp_tasks"); 
       $numrows = mysql_num_rows($check); 
       if($numrows > 1) 
       { 
        //$pass = md5($pass); 

        $inss = mysql_query("INSERT INTO dotp_tasks (task_percent_complete) VALUES ('$currentPercent') WHERE task_id='$currentTasken'") ; 

        if($inss) 
        { 
         die("Succesfully added Percent!"); 
        } 
        else 
        { 
         die("GERROR"); 
        } 

       } 
       else 
       { 
        die("Log already exists!"); 
       } 
     } 
     else 
     { 
      die("ERROR"); 
     } 

    } 
    else 
    { 
     die("Log already exists!"); 
    } 


?> 
+0

錯誤檢查。 [1](http://php.net/manual/en/function.error-reporting.php) - [2](http://php.net/manual/en/function.mysql-error.php) –

+0

你什麼意思? – TorresAlGrande

+0

刷新我的評論,他們是超鏈接 –

回答

5

正如我在評論中說:

INSERT... doesn't have a WHERE clause. Error checking would have signaled the syntax error. INSERT ON DUPLICATE KEY does. You may have wanted to use UPDATE instead

$inss = mysql_query("UPDATE dotp_tasks 
        SET task_percent_complete = '$currentPercent' 
        WHERE task_id='$currentTasken'"); 

參考文獻:

另外,不要使用錯誤檢查時TESTIN G:

代替呼應的自定義消息。

or die(mysql_error())增加到mysql_query()

error reporting添加到您的文件的頂部,這將有助於發現錯誤。

<?php 
error_reporting(E_ALL); 
ini_set('display_errors', 1); 

// rest of your code 

旁註:錯誤報告只應在分期完成,並且從不生產。


腳註:

+0

你知道我爲什麼得到ReferenceError:Patikrinta沒有定義jsfiddle.net/uaae0xcy – TorresAlGrande

+0

@TorresAlGrande重新加載我的答案,如果你沒有看到關於你的HTML表單/元素和錯誤報告的部分。 JS不是我的包,對不起。 –

+0

無法找到你寫在這裏https://jsfiddle.net/uaae0xcy/ ** ReferenceError:Patikrinta沒有定義** – TorresAlGrande

2

Fred -ii-將它釘在他的評論中 - 您在該查詢中使用了不正確的語法。

它看起來像你想的更新查詢,例如:

update dotp_tasks 
set task_percent_complete = '$currentPercent' 
where task_id = '$currentTasken' 

另外 - 它總是最好避免通過手動格式化字符串創建查詢 - 你想看看prepared statements進一步完善此代碼。

+0

你知道我爲什麼得到'ReferenceError:Patikrinta沒有定義'https://jsfiddle.net/uaae0xcy/ – TorresAlGrande

+1

感謝您的提及,*歡呼* –