2015-08-23 31 views
0

如何將sql查詢存儲到變量,以將1添加到其當前值。我已經有一個代碼,但它不會將1添加到選擇查詢['eCorrect']中的當前值,而是在提交表單後結果爲2。它顯示這個錯誤mysqli_result類的對象無法轉換爲int。我已將'eCorrect'字段設置爲數據類型INT。我不知道我的錯誤在哪裏,請提前謝謝。SQL查詢存儲在一個變量中,並使用該變量來添加一些東西,使用PHP

<form method="post" action="elQ2.php"> 
     <p>Question: sample question sample question sample question sample question</p> 
     <input type="radio" name="Ctwo" value="wrong">Choice A<br> 
     <input type="radio" name="Ctwo" value="wrong">Choice B<br> 
     <input type="radio" name="Ctwo" value="correct">Choice C<br> 
     <input type="radio" name="Ctwo" value="wrong">Choice D<br> 
     <input type="submit" name="submit" value="Submit" class="pull-right"> 
     </form> 
    </div> 
</div> 

這是我的PHP代碼

<?php 
$correctResult = $db->query("SELECT eCorrect FROM elearn WHERE eID=1"); 
$wrongResult = $db->query("SELECT eWrong FROM elearn WHERE eID=1"); 

$addC = $correctResult; 
$addW = $wrongResult; 
    if(isset($_POST['submit'])) { 

if(!empty($_POST['Ctwo'])){ 
    if($_POST['Ctwo']=="correct") { 

       $eAns = $_POST['Ctwo']; 
       $eAns= $addC + 1 ; 
       if($update = $db->query(" UPDATE elearn SET eCorrect = '".$eAns."' WHERE eID=1 ")) { 
      }else{ 
       die($db->error); 
      } 
       echo "Correct Answer"; 

    }else{ 
       //Wrong answer 
       $eAns = $_POST['Ctwo']; 
       $eAns = $addW + 1 ; 
       if($update = $db->query(" UPDATE elearn SET eWrong = '".$eAns."' WHERE eID=1 ")) { 
      }else{ 
       die($db->error); 
      } 
       echo "Wrong answer"; 
      } 
     } else{ 
      echo "You must choose an answer"; 
     } 
} 
?> 
+0

如果你只是想通過一個遞增它,確實'UPDATE elearn SET eCorrect = eCorrect + 1,其中的eID = 1'工作?您不需要選擇值,將其加1並寫回,只能使用SQL來完成此操作。 – Drudge

+0

感謝它的工作。 –

回答

0

因爲$ ADDC和$ ADDW變量包含結果集時出現問題。所以實際上你正在給結果集加1。

嘗試做這個:

$cRow = $db->query("SELECT eCorrect FROM elearn WHERE eID=1"); 
$correctResult = $cRow[0]; 

$wRow = $db->query("SELECT eWrong FROM elearn WHERE eID=1"); 
$wrongResult = $cRow[0]; 
+0

我得到了這個錯誤「致命的錯誤:調用未定義的方法mysqli_result :: fetch()」 –

+0

我改變了一下我的代碼..現在怎麼樣? – Redoneben

+0

我現在得到這個錯誤。不能使用類型爲mysqli_result的對象作爲數組 –